我应该在C ++中使用int还是long?

时间:2015-04-19 12:10:05

标签: c++ int

虽然int的大小取决于CPU,long似乎是32位(?)。但是对于大小并不重要的数字,使用int似乎是非常直观的,就像在for循环中一样。

C ++同时具有long__int32也令人困惑。当时的第二个是什么?

问题:我应该在什么情况下使用哪些类型的数字?

3 个答案:

答案 0 :(得分:6)

intlong都没有固定大小(或任何固定的表示),只要它们可以保持特定的值范围(包括long不能小于int)。

对于特定尺寸,有一些类型,如int32_t等(可能相同)。

并且__int32不是标准C ++,而是特定于编译器的东西(例如MSVC)

答案 1 :(得分:2)

标准指定long不短于int - 在C ++标准§3.9.1中指定

C ++ 11引入了具有固定字节数的整数,如int32_t

答案 2 :(得分:-2)

注意int即使在许多64位架构/编译器组合上也是32位(据我所知,64位版本的gcc和MSVC都使用32位)。另一方面,long在64位编译器上通常为64位(但不在Windows上)。

这些仅是指导原则,您必须查看编译器手册以了解如何定义这些数据类型。