printf进行的不规则打印

时间:2018-09-02 14:55:11

标签: c printf

以下代码段虽然完全相同,但给出的答案却不同

#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是否可以进行内部类型转换?

1 个答案:

答案 0 :(得分:1)

签名类型的下/上溢出是未定义的行为,您不应依赖它。