如何正确比较 char 和 0x85?

How to compare char with 0x85 correctly?

C++ 编程。 我有来自 winsock recv 缓冲区的 char* 输出。像这样比较我有点问题。我有 char a.

if(a == 0x85)

不起作用,但是

if(a == -123)

相同的(来自调试器)工作.. 对不起我的英语。

尝试

if ( a == (char)0x85 )

您的代码不起作用,因为 a 将被转换为 int,因为在 == 的右侧有一个 int 类型的表达式。如果 a 确实是 (char)0x85,并且 charsigned char(在所有平台上可能不是这种情况),那么 a 是负数,因此 (int)a 是负数,因此不等于 0x85

把右手边变成char类型的表达式,祝你开心每一天! ;)