32位与64位环境中的int_max

INT_MAX在32位和64位环境之间是否不同? 虽然我听说人们说64位环境只使用32位环境的INT_MAX,但似乎情况确实如此。

这取决于系统。 在英特尔Linux上,它们是相同的。 检查limits.h

你的问题可能过于笼统,但在典型的64位环境(x86-64)中,int的大小与386相同(请记住,这也取决于操作系统,而不仅仅是架构)。 C标准仅限制下限(如wiki所述 )。

对于某些编译器, long类型有所不同。 也就是说,编译32位时long为32位,否则为64位,而int为32位。

但是根据你想要的,你的问题的答案可能是使用int64_t (或你的编译器的等价物,可能是__int64或类似的东西),如果你想确保你有一个64位的int。

所以你应该澄清你的问题。