intmax_t 可以容纳 size_t 吗?

标签 c printf size-type

intmax_t 可以保存 size_t 的最大十进制数吗? printf 中哪种尺寸类型具有最大优先级 uintmax_t/intmax_t 或 size_t(例如,如果我写 printf("%zjd", x))?

最佳答案

很可能不会

两者都是特定于实现的,因此实际上不可能回答。

size_t(通常)是一个无符号整数,它包含适合给定 CPU 上的寄存器的最大可能位数。虽然这在现实中并不能完全保证,但我仍然没有找到这不是真的例子。

intmax_t 是一个带符号的整数,这意味着它可能具有存储 size_t 可以容纳的任何值所需的位,但大值并不意味着相同; size_t 可以容纳的最大值,在解释为 intmax_t 时可能会是负整数。

关于intmax_t 可以容纳 size_t 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47695905/

相关文章:

c - C链表中的内存泄漏

c - fprintf 和 ctime 没有从 ctime 传递\n

c - 指针在 printf() 中不起作用

c++ - 为什么我们不对 cout 使用格式说明符?

c++ - C++ 和/或 C 中的 size_t 与 int

c++ - 构造 vector C++

c - C中的printf不占内存?

C函数修改inode?

c - 如何使用 C 中的结构创建数据库

c++ - 我真的需要返回 Type::size_type 吗?