读书人

g++编译警告:因为数据类型范围限制,比

发布时间: 2012-10-11 10:16:10 作者: rapoo

g++编译警告:由于数据类型范围限制,比较结果永远为假
比如说:
char* strTemp = "http://";
if (*(strTemp + 2) == 0x74)
cout<<"T"<<endl;
else
cout<<"F"<<endl;
在linux下用g++调试,第二行出现警告:由于数据类型范围限制,比较结果永远为假。在VC6下是没有问题的,
如果变成
char* strTemp = "http://";
if (*(strTemp + 2) & 0x74 == 0x74)
cout<<"T"<<endl;
else
cout<<"F"<<endl;
在linux下用g++调试通过,但是逻辑上是不好的,有没有好的解决办法?是什么原因产生这种警告?请达人指教。


[解决办法]
if (*(strTemp + 2) == char(0x74))
[解决办法]
开个玩笑 if ((int)(*(strTemp + 2)) == 0x74)
和这位仁兄是一样的,还是下面的方法好

探讨
if (*(strTemp + 2) == char(0x74))

读书人网 >C++

热点推荐