C++中整数值类型的大小和范围是特定于平台的.在大多数32位系统上找到的值可以在变量中找到.数据类型.- C++文档.您如何确定特定系统的实际大小和范围?
limits.h包含int和其他数据类型的最小值和最大值,这些值应该是您需要的:
#include// C header #include // C++ header // Constant containing the minimum value of a signed integer (–2,147,483,648) INT_MIN; // Constant containing the maximum value of a signed integer (+2,147,483,647) INT_MAX;
有关常量及其常用值的完整列表,请查看:Wikipedia - limits.h
有一个基于模板的C++方法,正如其他评论者提到的那样:
#includestd::numeric_limits
看起来像:
std::numeric_limits::max();
它甚至可以做更多的工具,例如确定可能的数字位数或数据类型是否已签名:
// Number of digits for decimal (base 10) std::numeric_limits::digits10; // Number of digits for binary std::numeric_limits ::digits; std::numeric_limits ::is_signed;
看一眼 std::numeric_limits
为什么不确定并使用boost的数字类型?
即:
boost::uint32_t boost::int32_t
等等