重複の可能性:
int のサイズはコンパイラやプロセッサに依存しますか?
私は64 bit
OS (Windows 7)とDev C++
コンパイラ(32ビット)を使用しています。私もMicrosoft Visual C++
(32 ビット)を使用します。
プリミティブのサイズについて混乱しています。(int、char、short など) 私のいくつかの質問に答えてください:
• これらのデータ型のサイズは何に依存しますか? サイズは、プロセッサ、オペレーティング システム、コンパイラの種類によって異なると聞いています。そうですか ?はいの場合、どのように異なるのか説明してください。
• 64 ビット OS と 32 ビット コンパイラを使用している場合、生成されるバイナリは 32 OS と 64 OS の両方で互換性がありますか? この問題に適切に対処し、明確かつ正確な回答をお願いします。
• 特定のプラットフォームで生成されるバイナリに影響を与える要因は何ですか?
• 32 ビット Linux で 32 ビット コンパイラを使用してバイナリが生成されたとします。32 ビット ウィンドウでは何か違いがありますか?
• データ型の範囲はどのようにint
定義されていますか? それはどのような要因に依存していますか?以前に私はそれがあると読みましたが32767
、Microsoft Visual C++ を使用している間は32767
. 範囲はコンパイラに完全に依存していますか、それともオペレーティング システムやプロセッサの種類にも依存していますか?
• プログラムがあるとしましょう :
#include<iostream.h>
using namespace std;
int main() {
int x;
cout<<sizeof(x);
}
32 ビット Windows で Microsoft Visual C++ 2010 (32 ビット) を使用している場合4
、回答として出力されます。64 ビット プラットフォームで実行した場合、この結果は異なりますか? いずれにせよ、適切な理由を答えてください。