これを gcc (4.6.3) でコンパイルすると、警告は発生せず、結果として -2147483648 が生成されます。
printf ("%d", (1<<31));
これをコンパイルすると、「警告: 式 [-Woverflow] の整数オーバーフロー」が発生し、結果として 2147483647 が生成されます。
printf ("%d". (1<<31)-1);
2 番目の式で整数オーバーフローの警告が表示される理由がわかりません。
これを gcc (4.6.3) でコンパイルすると、警告は発生せず、結果として -2147483648 が生成されます。
printf ("%d", (1<<31));
これをコンパイルすると、「警告: 式 [-Woverflow] の整数オーバーフロー」が発生し、結果として 2147483647 が生成されます。
printf ("%d". (1<<31)-1);
2 番目の式で整数オーバーフローの警告が表示される理由がわかりません。