为什么要这样说:
QByteArray data (initialized somehow);
if(data.at(0) == 0xFF)
do_something();给出这样的警告:由于数据类型-Wtype-limits的有限范围,比较总是假的。
您可以使用0xff值初始化QByteArray:
QByteArray data;
data[0]=0xff;这不会给出警告或错误,那么为什么不能将它与0xff值进行比较呢?
发布于 2015-10-16 02:16:15
QByteArray是处理const char *的Qt安全方法。char的范围是-128到127。因此,您可以分配或比较您的值:
if(data.at(0) == 0xFF)
{
}但编译器会生成警告,指出条件总是为false。由于范围的限制,字符值永远不会是255。它不是unsigned char。
发布于 2018-01-17 20:05:39
您可以使用以下表达式:
if((unsigned char)(data.at(0)==0xFF){}https://stackoverflow.com/questions/33155099
复制相似问题