背景:作为套接字会话的一部分,我收到了一个 char* 数组。现在我们必须匹配其中的令牌(HTTP 标头)。这里的代码是我们创建了一个 UBYTE* 并在使用 UBYTE 进行类型转换后从 char 数组中获取值。稍后我们将相同的 UBYTE 指针传递给其他函数,该函数在将其类型转换为 char* 后接受 char*。
这里的问题是这适用于发布版本而不是调试版本(使用 -g 和不同的优化)。不仅在调试模式下添加少量打印隐藏了问题。
所以我在这里的问题是,UByte 指针(本质上是一个无符号字符)和 char 指针有什么区别。将 UByte 更改为 char 可以解决我在所有模式下的问题,但我对此没有任何解释?有什么想法吗 ?