以下代码段虽然完全相同,但给出的答案却不同
#include <stdio.h>
int main() {
signed char c = -128;
c = -c;
printf("%d", c);. //-128
return 0;
}
并且:
#include <stdio.h>
int main() {
signed char c = -128;
printf("%d", -c);. //expected -128 but got 128
return 0;
}
printf
是否可以进行内部类型转换?
答案 0 :(得分:1)
签名类型的下/上溢出是未定义的行为,您不应依赖它。