Ada*_*dam 38
limits.h包含int和其他数据类型的最小值和最大值,这些值应该是您需要的:
#include <limits.h> // C header
#include <climits> // 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;
Run Code Online (Sandbox Code Playgroud)
有关常量及其常用值的完整列表,请查看:Wikipedia - limits.h
有一个基于模板的C++方法,正如其他评论者提到的那样:
#include <limits>
std::numeric_limits
Run Code Online (Sandbox Code Playgroud)
看起来像:
std::numeric_limits<int>::max();
Run Code Online (Sandbox Code Playgroud)
它甚至可以做更多的工具,例如确定可能的数字位数或数据类型是否已签名:
// Number of digits for decimal (base 10)
std::numeric_limits<char>::digits10;
// Number of digits for binary
std::numeric_limits<char>::digits;
std::numeric_limits<unsigned int>::is_signed;
Run Code Online (Sandbox Code Playgroud)
为什么不确定并使用boost的数字类型?
即:
boost::uint32_t
boost::int32_t
Run Code Online (Sandbox Code Playgroud)
等等