C における int と long の違いを理解する
C における int と long データ型の区別には、しばしば疑問が生じます。これらが両方とも 4 バイトを占有し、同じ値の範囲を共有することは簡単に思えるかもしれませんが、この仮定は完全に正確ではありません。
主な違いは、それらのサイズと値の範囲が実装に依存することです。これは、プラットフォームやコンパイラが異なると、これらの型の定義が異なる可能性があることを意味します。
たとえば、Windows システムでは、int と long のサイズは両方とも 4 バイトで、値の範囲は -2,147,483,648 ~ 2,147,483,647 (2^31) です。 。他のシステムでは、これは当てはまらない可能性があります。
Alpha システムでは、たとえば、long は 64 ビット幅ですが、int は 32 ビットのままです。これは、long の値の範囲が Alpha システムでは大幅に大きいことを意味します。
インテル C コンパイラーは、可変プラットフォーム サイズのルールに関する包括的なガイドを提供します。
OS | Architecture | Size |
---|---|---|
Windows | IA-32 | 4 bytes |
Windows | Intel 64 | 4 bytes |
Windows | IA-64 | 4 bytes |
Linux | IA-32 | 4 bytes |
Linux | Intel 64 | 8 bytes |
Linux | IA-64 | 8 bytes |
Mac OS X | IA-32 | 4 bytes |
Mac OS X | Intel 64 | 8 bytes |
したがって、次のようになります。 int と long のどちらかを選択する場合は、使用されているプラットフォームまたはコンパイラを考慮することが重要です。実装固有の特性を考慮せずに、これらを同じ意味で使用しないでください。
以上がC の「int」と「long」の本当の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。