请问一下 看到第七诫 有个例子不甚了解
=====================
错误例子: (感谢 sekya 网友提供)
unsigned char a = 0x80; /* no problem */
char b = 0x80; /* implementation-defined result */
if( b == 0x80 ) { /* 不一定恒真 */
printf( "b ok\n" );
}
说明:语言并未规定 char 天生为 unsigned 或 signed,因此将 0x80 放入
char 型态的变量,将会视各家编译器不同作法而有不同结果
======================
常常看到大家使用或是传递buffer都是char 型别,
看完这例子让我觉得是不是都可能有问题?
把一个超过127的数值塞给char 就可能有问题?
或是拿出来跟超过127的数值做比较也会有问题?
如果这样是不是buffer 都应该用unsigned char 来宣告跟操作才保险呢
谢谢