2

重複の可能性:
int のサイズはコンパイラやプロセッサに依存しますか?

私は64 bitOS (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 ビット プラットフォームで実行した場合、この結果は異なりますか? いずれにせよ、適切な理由を答えてください。

4

0 に答える 0