小编mal*_*ute的帖子

使用gcc和有符号/无符号比较的奇怪警告行为

我有以下代码:

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)

警告不再显示,我真的不知道为什么......这种行为是否有任何合理的原因,或者我做错了什么?!

c++ comparison compiler-warnings

8
推荐指数
2
解决办法
338
查看次数

标签 统计

c++ ×1

comparison ×1

compiler-warnings ×1