int8_t
是一个 8 位有符号整数。因此,它的值在 [-128...127] 范围内的任何位置。
int8_t num = -1;
printf("%u",num);
输出:
4294967295
有人可以给我提示吗?
最佳答案
您的程序行为未定义。
%u 不能用作 int8_t 的格式说明符,因为它是有符号类型,而 %u 用于无符号类型。
改用 %d,并依靠 C 标准保证自动将 num 提升为 int 类型。
关于c - 让 int8_t num = -1。为什么 printf ("%u", num) 溢出到 T_MAX32 而不是 T_MAX8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40137668/