在"C的完整参考"一书中,提到char默认情况下是无符号的.
但我试图用GCC和Visual Studio验证这一点.它默认签名.
哪一个是正确的?
C99的5.2.4.2.1定义SCHAR_MIN为-127和SCHAR_MAX127. 8位有符号整数的范围不应该是-128到+127吗?
在limits.h我的编译器定义为SCHAR_MIN (-1 << ((CHAR_BIT)-1)),这是给CHAR_BIT -128是8.
是否有任何理由SCHAR_MIN定义-127而不是-128?
我想知道在这种情况下C++的行为如何:
char variable = 127;
variable++;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,变量现在等于-128.但是,增量运算符是将值包装到其下限还是发生了溢出?
提前致谢!