用C ++编程。 我从winsock recv的缓冲区输出char *。我这样比较有点问题。我有char。
if(a == 0x85)
不起作用,但
if(a == -123)
同样(来自debbuger)的作品.. 抱歉我的英文。
答案 0 :(得分:2)
尝试
if ( a == (char)0x85 )
由于a
转换为int
,您的代码无效,因为在==
的右侧有int
类型的表达式。如果a
确实是(char)0x85
,而char
是signed char
(在所有平台上可能不是这种情况),那么a
是否定的,因此{{ 1}}为负数,因此不等于(int)a
。
将右侧放入0x85
类型的表达式中,您将度过快乐的一天! ;)