Nat*_*man 9 c++ warnings unsigned-char
我的文件中有以下代码:
unsigned char * pData = new unsigned char...
...
if(pData[0] >= 160 && pData[0] <= 255)
Run Code Online (Sandbox Code Playgroud)
当我编译它时,我从编译器(gcc)收到警告:
警告:由于数据类型的范围有限,因此比较始终为真
怎么会这样?不是unsigned char0-255 的范围?我糊涂了.
表达式pData[0] <= 255始终为true,因为范围unsigned char为0..255(在您的特定实现中).
它只是抱怨那些表达式,因为它pData[0] >= 160可能是真或假.
请记住,所有实现的范围unsigned char都不需要为0..255 (ISO C标准不要求这样做).