gpt4 book ai didi

c - 不同平台上的打印类型有所不同

转载 作者:行者123 更新时间:2023-12-01 16:26:33 24 4
gpt4 key购买 nike

我需要存储一个项目数组,其中每个项目的长度为 32 位。所以目前我正在使用 long 的数组。但是我现在正在另一台机器上进行编译,其中 long是64位的。当涉及到有符号数字时,这会产生问题。 (即在两台机器上打印相同的数字,一台为负数(32 位),另一台为正数(64 位)。

所以计划切换到int32_t ,问题是当使用格式字符串打印数字时,说明符需要与 32 位机器上不同 int32_t定义为long在 64 位机器上,它被定义为 int

确保它在编译的任何机器上都是 32 位并且可以打印该数字的最佳方法是什么?看起来这很麻烦,应该有一种更简单/更容易的方法来获得长度为 32 位的项目数组。

最佳答案

正确的做法是

#include <inttypes.h>

然后使用格式说明符宏之一:

void show(int32_t the_integer) {
printf("The 32-value is %" PRId32 " in decimal.\n", the_integer);
}

参见http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html

关于c - 不同平台上的打印类型有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902882/

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