[72] Re:式の中のchar型
投稿者:(ぱ)
2007/02/20 02:13:25
>表題の件ですが、どこかで「式の中ではchar型の変数は、int型に格上げされる」
規格の6.2.1.5を見る限り、両辺の型が浮動小数点数でもlongでも
unsignedでもなければ、両オペランドがintに拡張されることになっています。
>オーバーフローせず、fooに10000が代入される。というような説明を
>読んだ記憶があるのですが、いまやってみるとしっかりオーバーフローしてくれます。
というわけで私のところでも試してみましたが、
bcc32とgccの両方で、しっかり10000が代入されました(gccはLinux上、
gccに-Wallを付けた以外はどちらもオプションなし)。
すみませんが、tosさんが実験された処理系とコンパイルオプション、
および再現できる完全なソースコードを教えていただけませんか?
ちなみに私はこんなソースで試しました。
#include <stdio.h>
int main(void)
{
char hoge;
char piyo;
int foo;
hoge = 100;
piyo = 100;
foo = hoge * piyo;
printf("foo..%d\n", foo);
return 0;
}