gpt4 book ai didi

c - 我应该如何打印像 off_t 和 size_t 这样的类型?

转载 作者:太空狗 更新时间:2023-10-29 16:14:23 47 4
gpt4 key购买 nike

我正在尝试打印 off_tsize_t 等类型。 printf() 可移植 的正确占位符是什么?

或者是否有一种完全不同的方式来打印这些变量?

最佳答案

打印off_t:

printf("%jd\n", (intmax_t)x);

打印size_t:

printf("%zu\n", x);

打印ssize_t:

printf("%zd\n", x);

参见C99标准中的7.19.6.1/7,或者更方便的格式化代码的POSIX文档:

http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html

如果您的实现不支持这些格式代码(例如,因为您使用的是 C89),那么您会遇到一些问题,因为据我所知,C89 中没有具有格式代码并保证和这些类型一样大。所以你需要做一些特定于实现的事情。

例如,如果您的编译器有 long long 并且您的标准库支持 %lld,您可以自信地期望它将代替 intmax_t。但如果不是,您将不得不回退到 long,这在其他一些实现上会失败,因为它太小了。

关于c - 我应该如何打印像 off_t 和 size_t 这样的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586928/

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