2

int には何バイトが含まれ、long には何バイトが含まれますか?

環境:

  • C++
  • 32ビットコンピュータ
  • 64ビットコンピューターで違いはありますか?
4

8 に答える 8

7

それについてのウィキペディアの記事を参照してください。

于 2008-10-02T18:49:33.380 に答える
7

プラットフォームとコンパイラ固有です。c または c++ で sizeof(int) および sizeof(long) を実行します。

于 2008-10-02T18:50:15.610 に答える
5

(C/C++について話していると思います)

実装に依存しますが、このルールは常に有効でなければなりません:

sizeof(short) <= sizeof(int) <= sizeof(long)

于 2008-10-02T18:51:03.127 に答える
2

他の人が際限なく言っているように、それは使用しているコンパイラ (および選択したコンパイラ オプションでさえ) に依存します。

ただし、実際には、多くの 32 ビット マシン用のコンパイラを使用すると、次のことがわかります。

  • 文字: 8 ビット
  • 短い: 16 ビット
  • 整数: 32 ビット
  • 長い: 32 ビット
  • long long: 64 ビット (サポートされている場合)

C 標準では基本的に、longをintよりも短くすることはできず、 shortよりも短くすることはできない、などと述べています...

64 ビット CPU の場合、これらはほとんど変更されませんが、MUSTポインターと int はしばしば同じサイズではないことに注意してください。

 sizeof(int) != sizeof(void*)
于 2008-10-02T19:04:55.170 に答える
1

コンパイラに依存します。

32 ビット システムでは、int と long の両方に 32 ビットが含まれます。16 ビット システムでは、int は 16 ビットで、long は 32 ビットです。

組み合わせは他にもあります!

于 2008-10-02T18:49:48.327 に答える
1

使用しているハードウェアに依存すると思います。32 ビット プラットフォームでは、通常、int と long の両方で 4 バイトです。C では sizeof() 演算子を使用して調べることができます。

int intBytes;
long longBytes;
intBytes= sizeof(int);
longBytes = sizeof(long);

long が 64 ビット アーキテクチャで 8 バイトになるのか、それとも 4 のままなのかはわかりません。

于 2008-10-02T18:55:15.973 に答える
0

それはあなたのコンパイラに依存します。さらに言えば、あなたの言語。より具体的な質問をしてみてください。

于 2008-10-02T18:50:14.567 に答える
0

それは、使用している言語に大きく依存します。

C では、"int" は常にプロセッサの語長になります。つまり、32 ビット アーキテクチャでは 32 ビットまたは 4 バイトです。

于 2008-10-02T18:51:08.400 に答える