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

Should I use int or long in C++?

本文关键字:int 还是 long C++ 我应该      更新时间:2023-10-16

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

同样令人困惑的是,C++既有long又有__int32。那么第二个是干什么的呢?

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

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

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

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

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

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

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

这些

只是指南,您始终必须查看编译器手册以了解这些数据类型是如何定义的。

相关文章: