我有以下代码:
unsigned int a;
if (a > numeric_limits<int>::max())
do_stuff();
Run Code Online (Sandbox Code Playgroud)
编译时,gcc抱怨
警告:"签名和未签名之间的比较"
好的,我明白了
但是,使用以下代码:
unsigned int a;
if (a > (numeric_limits<int>::max()))
do_stuff();
Run Code Online (Sandbox Code Playgroud)
警告不再显示,我真的不知道为什么......这种行为是否有任何合理的原因,或者我做错了什么?!