int_max在32位和64位环境中
答
对于某些编译器,与long
类型有所不同。也就是说,long
在编译32位时是32位,否则是64位,而int
在两种情况下都是32位。
但是,根据你的需要,如果你想确保你有一个64位int,那么你的问题的答案可能是int64_t
(或者编译器的等价物,或者是__int64
或类似的东西)。
所以你应该澄清你的问题。
+0
如果我使用'unsigned long long int',那么怎么样?在这种情况下,两种环境下的INT_MAX会有所不同吗? – Rio 2012-02-13 08:15:15
+0
不,INT_MAX是int的最大值。对于'unsigned long long'的最大值,使用'ULLONG_MAX'。但是不能保证这两个“环境”之间会有所不同。它可能会有所不同,取决于具体情况(Windows,Linux,哪个编译器等) – 2012-02-13 08:19:10
没有像* a * 32位或64位环境那样的东西,但是每个这样的系统都有多个定义。 – 2012-02-13 08:22:14