vine-users ML アーカイブ



[vine-users:055787] Re: long double の値

  • From: Akinori Sugitani <asugitan@xxxxxxxxxxxx>
  • Subject: [vine-users:055787] Re: long double の値
  • Date: Sat, 16 Nov 2002 12:34:40 +0900
On Sat, 16 Nov 2002 10:34:26 +0900
ひかる <hikaruru@xxxxxxxxxxxxxxxxxx> wrote:
> のコードで実行するとlong doubleが12と出てしまいます。8のはずですよね。幾ら確認しても分からないので間違いを教えてください。
マシンや処理系(どんなCコンパイラか)によって、変数のサイズは異なるという様に理解しています。
だから、"sizeof()"という演算子が必要なのでしょう。
「8のはず」と思い込まない方が無難です。

ちなみにこのプログラムの、私のところの実行結果では

short int型のサイズは2バイトです。
int型のサイズは4バイトです。
long int型のサイズは4バイトです。
float型のサイズは4バイトです。
double型のサイズは8バイトです。
long double型のサイズは12バイトです。
変数aのサイズは4バイトです。
式a+bのサイズは4バイトです。

と12バイトになっているようです。

また、
http://www.phim.unibe.ch/comp_doc/c_manual/C/CONCEPT/data_types.html
によれば、最近のPCでは"long double"は12バイトらしいので、これが標準的なのかと思います。
http://www1.cts.ne.jp/~clab/hsample/Func/Func07.html
もご参考下さい。これらは"google"で"sizeof()"を検索して見つけたものです。


-- 
杉谷明則
asugitan@xxxxxxxxxxxx