为什么声明:
QByteArray data (initialized somehow);
if(data.at(0) == 0xFF)
do_something();
给出了这样的警告: 由于数据类型[-Wtype-limits]的范围有限,比较总是假的。
您可以使用QByteArray
值初始化0xff
:
QByteArray data;
data[0]=0xff;
这没有任何警告或错误,为什么你不能将它与0xff
值进行比较?
答案 0 :(得分:3)
QByteArray
是处理const char *
的Qt安全方式。 char的范围是-128到127.因此您可以分配或比较您的值:
if(data.at(0) == 0xFF)
{
}
但编译器会生成警告,条件始终为false
。由于范围,Char值永远不会是255。它不是unsigned char
。
答案 1 :(得分:0)
您可以使用以下表达式:
{{1}}