siziofについては、第32章を参照してください。 これで、それぞれのデータ型が何バイト取るのかがわかります。// datatype.c #include <stdio.h> int main() { int a = printf("int = %d bytes\n", sizeof(int)); printf("short = %d bytes\n", sizeof(short)); printf("long = %d bytes\n", sizeof(long)); printf("float = %d bytes\n", sizeof(float)); printf("double = %d bytes\n", sizeof(double)); printf("long double = %d bytes\n", sizeof(long double)); printf("char = %d bytes\n", sizeof(char)); return 0; }
これは、第5章に書いてある内容と比べて特に問題はないですね。
では、全く同じプログラムをコンソールアプリで作って実行してみましょう。
同じプログラムなのに確保するバイト数が違いますね。 コンソールアプリではintもlongも同じになっています。 しかし、char型だけは、システムが変わろうが1バイトと 決められています。
コンソールアプリは32ビットアプリケーションであることに
注意してください。Windows95/98のDOS窓では動きますが,
DOSモードでは動作しません。
Update Aug/16/1998 By Y.Kumei