gpt4 book ai didi

C Unsigned int 提供负值?

转载 作者:太空狗 更新时间:2023-10-29 17:26:40 26 4
gpt4 key购买 nike

我有一个无符号整数,但是当我使用 %d 打印出来时,有时会有一个负值?

最佳答案

打印 %d 会将整数读取为带符号的十进制数,而不管其定义的类型如何。

要打印无符号数,请使用 %u

发生这种情况是因为 C 处理可变参数的方式。编译器只是从堆栈中提取值(类型为 void* 并指向调用堆栈)并且 printf 必须从您提供的格式字符串中找出数据包含的内容

这就是您需要提供格式字符串的原因 - C 无法提供 RTTI或“基类”(例如 Java 中的 Object)以从中获取通用或预定义的 toString

关于C Unsigned int 提供负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1831753/

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