2015-10-15 106 views
0

爲什麼語句:的QByteArray值比較

QByteArray data (initialized somehow); 
if(data.at(0) == 0xFF) 
do_something(); 

給出了這樣的警告: 比較總是假由於數據類型[-Wtype-限制]的範圍有限。

您可以0xff值初始化QByteArray

QByteArray data; 
data[0]=0xff; 

這沒有給出警告或錯誤,那麼你爲什麼不能用0xff值進行比較呢?

回答

3

QByteArray是Qt安全的方式來處理const char *。範圍爲焦炭是從-128到127所以,你可以指定或比較你的價值:

if(data.at(0) == 0xFF) 
{ 
} 

但是編譯器總是產生警告條件false。由於範圍,Char值永遠不會爲255。它不是unsigned char

0

您可以使用下面的表達式:

if((unsigned char)(data.at(0)==0xFF){}