次のプログラムでは、5 行目で予想どおりオーバーフローの警告が表示されます が、驚くべきことに、GCC では 4 行目では警告が表示されません: http://www.ideone.com/U0BXn
int main()
{
int i = 256;
char c1 = i; //line 4
char c2 = 256; //line 5
return 0;
}
両方の行でオーバーフローの警告が表示されるはずだと考えていました。または、私が見逃しているものがありますか?
この実験を行うきっかけとなったトピックは次のとおりです: typedef 型チェック?
そこで私は次のように言いました(実行すると、期待どおりに表示されなかったため、回答から削除しました):
//However, you'll get warning for this case:
typedef int T1;
typedef char T2;
T1 x = 256;
T2 y = x; //possible overflow warning! (but it doesn't give warning :()