K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>表題の件ですが、どこかで「式の中では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; >} >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!