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。
所以你应该澄清你的问题。