e5783.c

sizeof('A')はいくつ?

/* 警告:   B:e5783:sizeof(文字定数)はC言語ではintのサイズになります  */

printf("%d\n", sizeof('A'));
解説 上記のようなコードではCでは4や8等(intのsize)が出力され、 C++では1等(charのサイズ)が出力され、違う結果となります。 そのため、混乱を招きやすいので避けるべきです。 この警告はC言語解析時のみ出力されます。