我有以下代码:
unsigned int a;
if (a > numeric_limits<int>::max())
do_stuff();
在编译时,gcc会有以下提示:
警告: "signed" 和 "unsigned" 之间的比较
好的,我理解了。
但是,对于以下代码:
unsigned int a;
if (a > (numeric_limits<int>::max()))
do_stuff();
警告不再出现了,我真的不知道为什么... 这种行为有任何逻辑原因吗?还是我做错了什么?!
-Wall -ansi -pedantic -Wno-long-long
。 - malamioute