64 ビット Windows の 'long' のビット サイズ
疑問が生じます: なぜ 64 ビットでは 'long' が 64 ビットではないのですかWindowsのようなビットマシン?この記事では、さまざまなプラットフォームにおける整数のサイジングの歴史と影響について詳しく説明します。
整数のサイジングの歴史
Unix の世界では、64 の 2 つの主要な整数サイズの取り決めが存在します。ビット プラットフォームの登場: ILP64 (int、long、ポインタは 64 ビット) および LP64 (long、ポインタは 64 ビット) 64ビット)。 ILP64 は、macOS X や Linux などの最新の 64 ビット Unix システムの標準となった LP64 を支持して廃止されました。
Microsoft の LLP64 スキーム
Microsoft は LLP64 ( long long、ポインタは 64 ビットです) 64 ビット Windows の場合、再コンパイルが可能です。変更なしの 32 ビット ソフトウェア。ただし、これは他の 64 ビット プラットフォームとは異なり、64 ビットの機能を活用するには追加のコード調整が必要です。
プラットフォーム中立の整数型
整数のサイジングをクロスさせるには-platform では、C99 標準では
Windows に関する考慮事項
Windows は LLP64 を使用するため、'long' が 32 のままであることに注意することが重要です。 64 ビット マシン上のビット。このため、プラットフォームに依存しない整数型から逸脱する可能性があるシステム型を利用する場合は注意が必要です。
結論
さまざまなプラットフォームでの整数サイズの微妙な違いを理解することは、開発には不可欠です。クロスプラットフォーム ソフトウェア。
以上が64 ビット Windows では「long」が 64 ビットではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。