gpt4 book ai didi

c - 让 int8_t num = -1。为什么 printf ("%u", num) 溢出到 T_MAX32 而不是 T_MAX8?

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:42 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com