SSブログ

32bitと64bitのサイズの違い(C言語) [プログラミング]

32bitと64bit環境ではサイズが違うのでメモメモ。
色々な型に対してsizeof()関数を使ってみた結果は以下の通り。
OS間または32bit/64bit間でサイズが変わる型を使う場合は移植に注意が必要。

  Windows Solaris Linux
32bit 64bit 32bit 64bit 32bit 64bit
sizeof(char) 1 1 1 1 1 1
sizeof(short) 2 2 2 2 2 2
sizeof(int) 4 4 4 4 4 4
sizeof(float) 4 4 4 4 4 4
sizeof(long) 4 4 4 8 4 8
sizeof(void*) 4 8 4 8 4 8
sizeof(double) 8 8 8 8 8 8
sizeof(long long) 8 8 8 8 8 8
sizeof(long double) 8 8 16 16 12 16

・WindowsとLinuxの64bit環境についてはItanium 2プロセッサ搭載マシンで実験。
・SolarisはSPARC 64Vプロセッサ搭載マシンにて実験(コンパイルオプションにより32/64切り換え)


nice!(3)  コメント(6)  トラックバック(0) 

nice! 3

コメント 6

konuma

intとポインタ型はCPUが処理しやすい大きさになるのが普通なのですよ。
16bitなら2Byteだし64bitなら8Byte。
それはそうとItenium2ましんいいなぁ。
おくれ!
by konuma (2006-01-20 01:28) 

konuma

訂正。
intが汎用レジスタの大きさでポインタ型はメモリアドレス空間の大きさだだだ。
by konuma (2006-01-20 01:35) 

のぼ

なるほど。つまり、↑の値的には間違ってないってことね。

>>Itenium2
やるよ(嘘
64bit対応のソフト選びに難航するよ~
今のところItenium2の恩恵は…
by のぼ (2006-01-20 08:21) 

konuma

まぁ結局CPUに関係なくコンパイラが決めること。
メモリ空間が2~3Gしかない某OSでポインタだけが64bitになっても無駄。
あいてにあむの恩恵は馬鹿でかいキャッシュと独自命令セットだろ。
by konuma (2006-01-22 01:44) 

のぼ

ほぅ。
ちなみに、ウチの部署にあるやつ、比較的よくCPUが壊…。
空調がちゃんとしてないのも大きな要因だろうが壊れすぎ。
by のぼ (2006-01-25 00:55) 

konuma

「機械が壊れるような環境で生活させる気か!待遇改善を望む。」とでも言っておけば。| _・)
by konuma (2006-01-25 22:48) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

口内炎LLR3 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。