gpt4 book ai didi

c - Printf 类型 uintMAX_t 不适用于虚拟机

转载 作者:行者123 更新时间:2023-11-30 17:15:29 25 4
gpt4 key购买 nike

我在 Oracle 虚拟机上运行 OpenSuse,在编译代码时遇到这种错误:vir

警告:格式“%lx”需要“long unsigned int”类型的参数,但参数的类型为“uint64_t”类型转换值(value)没有帮助。

代码在另一台 OpenSuse 笔记本电脑上运行和编译得很好,我知道虚拟机上的操作系统与“正常启动”操作系统的行为不完全相同,但是您知道我可以采取哪些修复来解决这个问题吗?

最佳答案

根据第 7.8 Format conversion of integer types <inttypes.h> 部分ISO (C11) 标准中,stdint.h 中定义的特定宽度整数类型有特定格式说明符(如uint64_t):

The header <inttypes.h> includes the header <stdint.h> and extends it with additional facilities provided by hosted implementations.

再进一步,在7.8.1 Macros for format specifiers中,它开始详细说明您应该使用的格式说明符。

对于uint64_t type,小写十六进制输出格式为PRIx64 ,所以你应该使用类似的东西:

printf ("The value is %" PRIx64 "\n", myUint64tVariable);

关于c - Printf 类型 uintMAX_t 不适用于虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961361/

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