int には何バイトが含まれ、long には何バイトが含まれますか?
環境:
- C++
- 32ビットコンピュータ
- 64ビットコンピューターで違いはありますか?
それについてのウィキペディアの記事を参照してください。
プラットフォームとコンパイラ固有です。c または c++ で sizeof(int) および sizeof(long) を実行します。
(C/C++について話していると思います)
実装に依存しますが、このルールは常に有効でなければなりません:
sizeof(short) <= sizeof(int) <= sizeof(long)
他の人が際限なく言っているように、それは使用しているコンパイラ (および選択したコンパイラ オプションでさえ) に依存します。
ただし、実際には、多くの 32 ビット マシン用のコンパイラを使用すると、次のことがわかります。
C 標準では基本的に、longをintよりも短くすることはできず、 shortよりも短くすることはできない、などと述べています...
64 ビット CPU の場合、これらはほとんど変更されませんが、MUST
ポインターと int はしばしば同じサイズではないことに注意してください。
sizeof(int) != sizeof(void*)
コンパイラに依存します。
32 ビット システムでは、int と long の両方に 32 ビットが含まれます。16 ビット システムでは、int は 16 ビットで、long は 32 ビットです。
組み合わせは他にもあります!
使用しているハードウェアに依存すると思います。32 ビット プラットフォームでは、通常、int と long の両方で 4 バイトです。C では sizeof() 演算子を使用して調べることができます。
int intBytes;
long longBytes;
intBytes= sizeof(int);
longBytes = sizeof(long);
long が 64 ビット アーキテクチャで 8 バイトになるのか、それとも 4 のままなのかはわかりません。
それはあなたのコンパイラに依存します。さらに言えば、あなたの言語。より具体的な質問をしてみてください。
それは、使用している言語に大きく依存します。
C では、"int" は常にプロセッサの語長になります。つまり、32 ビット アーキテクチャでは 32 ビットまたは 4 バイトです。