質問:
矛盾する情報は、' 「long」は、64 ビット Windows マシンでは 64 ビットではない可能性があります。これは本当ですか?また、プログラマは代わりに何を使用する必要がありますか?
答え:
答えは、64 ビット プラットフォームでのさまざまな整数サイズの配置を調べることにあります:
ILP64 (Int、Long、ポインタは64 ビット)
LP64 (Long、ポインターは 64 ビット)
LLP64 (Long Long、ポインタは 64 ビット)
Windows への影響:
64 ビット Windows では、「long」は確かに 32 です他の 64 ビット プラットフォームとは異なります。 Microsoft は、既存の 32 ビット アプリケーションとの互換性を確保するために LLP64 スキームを採用しました。
推奨事項:
プラットフォーム中立のコードを確保するには、
次の場合は注意してくださいシステム タイプを使用する (例: 'long') はプラットフォームによって異なる可能性があるためです。 intptr_t は、2 つの uintptr_t 値を減算した結果としてのみ使用してください。
結論:
64 ビット Windows 上の 'long' のビット サイズは 32 ビットであり、次の値から外れています。他の多くの 64 ビット システムで使用されている LP64 スキーム。プラットフォーム固有の複雑さを回避するには、プログラマはプラットフォームに依存しない整数型を採用し、システム型を慎重に扱う必要があります。
以上が64 ビット Windows では「long」は本当に 64 ビットですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。