通常我使用的对象会有(签名)
当我执行像
因此,名义上我不想使用
如果没有:最好的处理方式是什么?如果我使用编译器标志
int
参数,例如int iSize
,最终会存储某些东西的大小。同时,我通常会将它们初始化为-1
,表示该对象(等等)尚未设置/未填写/尚未准备好使用。当我执行像
if(iSize>=someVector.size()){...}
这样的操作时,经常会出现警告“在有符号和无符号整数之间比较”。因此,名义上我不想使用
unsigned int
。是否存在任何会导致错误或意外行为的情况?如果没有:最好的处理方式是什么?如果我使用编译器标志
-Wno-sign-compare
,我可能会错过一个应该使用unsigned int
(或类似的类型)的情况。所以我应该在与unsigned int
进行比较时使用强制转换吗——例如if(iSize>=(int)someVector.size()){...}
?