我的小程序:
#include <stdio.h> int main() { signed char c = -128; c = -c; printf("%d",c); return 0; }
打印:
-128
减( – )运算符是否可以跨CPU运行?
解决方法
一元减号的操作数首先经历标准的承诺,因此它的类型为int,它可以表示值-128.操作的结果是值128,也是int类型.从int到signed char的转换是签名类型的缩小,是实现定义的.
(您的实现似乎做了一个简单的环绕:125,126,127,-128,-127,……)