在下面的程序中,第 5 行确实按预期给出了溢出警告 ,但令人惊讶的是,第 4 行在 GCC 中没有给出任何警告: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 :()