爲什麼語句:的QByteArray值比較
QByteArray data (initialized somehow);
if(data.at(0) == 0xFF)
do_something();
給出了這樣的警告: 比較總是假由於數據類型[-Wtype-限制]的範圍有限。
您可以0xff
值初始化QByteArray
:
QByteArray data;
data[0]=0xff;
這沒有給出警告或錯誤,那麼你爲什麼不能用0xff
值進行比較呢?
爲什麼語句:的QByteArray值比較
QByteArray data (initialized somehow);
if(data.at(0) == 0xFF)
do_something();
給出了這樣的警告: 比較總是假由於數據類型[-Wtype-限制]的範圍有限。
您可以0xff
值初始化QByteArray
:
QByteArray data;
data[0]=0xff;
這沒有給出警告或錯誤,那麼你爲什麼不能用0xff
值進行比較呢?
QByteArray
是Qt安全的方式來處理const char *
。範圍爲焦炭是從-128到127所以,你可以指定或比較你的價值:
if(data.at(0) == 0xFF)
{
}
但是編譯器總是產生警告條件false
。由於範圍,Char值永遠不會爲255。它不是unsigned char
。
您可以使用下面的表達式:
if((unsigned char)(data.at(0)==0xFF){}