64 ビット Windows の Long のビット サイズ: 詳細
64 ビット Windows の Long のサイズの問題は次のとおりです。若干の混乱を引き起こした。ドキュメントでは、この環境では Long が実際に 64 ビットであると示唆されていますが、現実はさらに微妙です。
Unix システムの領域では、64 ビット プラットフォーム (主に ILP64) での整数とポインターのサイズについてさまざまな取り決めがあります。そしてLP64。ただし、Microsoft のアプローチは LLP64 では異なります。
ILP64 と LP64 の比較
Type | ILP64 | LP64 | LLP64 |
---|---|---|---|
char | 8 | 8 | 8 |
short | 16 | 16 | 16 |
int | 64 | 32 | 32 |
long | 64 | 64 | 32 |
long long | 64 | 64 | 64 |
pointer | 64 | 64 | 64 |
最新の 64 ビット Unix システムはすべて LP64 を使用します。ここで、long は 64 ビットです。 MacOS X と Linux はこのカテゴリに分類されます。
LLP64 と 64 ビット Windows
Microsoft の LLP64 スキームでは、変更を加えずに 32 ビット ソフトウェアを再コンパイルすることが優先されます。その結果、64 ビット Windows システムでは:
プラットフォーム中立コード
プラットフォームに依存しないコードを実現するには、C99
これらを使用することでコード内の型を使用すると、さまざまなプラットフォームで特定の整数サイズに依存しないアプリケーションを作成できます。
結論
Unix システムでは通常、long は 64 ビットですが、 64 ビット Windows では、Microsoft の LLP64 アプローチにより 32 ビットのままです。さまざまな整数サイズの規則を理解し、プラットフォームに依存しない型を使用することで、開発者は幅広いシステム間で互換性のあるコードを作成できます。
以上が64 ビット Windows では「long」は本当に 64 ビットですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。