原文地址:http://blog.csdn.net/clever101/article/details/8053510
作者:朱金灿
来源:http://blog.csdn.net/clever101
本文是基于VS C++2008编译器来叙述的,其它编译环境或许和本文所说的有出入。
C++常用数值类型的值范围的宏定义主要放在两个C标准库的头文件中定义:float.h和limits.h。其中float.h定义了浮点数类型double和float的数值范围,分别是:
#define DBL_MAX 1.7976931348623158e+308 /* double型的最大值*/
#define DBL_MIN 2.2250738585072014e-308 /* double型的最小值 */
#define FLT_MAX 3.402823466e+38F /* float型的最大值*/
#define FLT_MIN 3.402823466e+38F /* float型的最小值*/
limits.h定义了整型类型的数值范围:
#define SCHAR_MIN (-128) /* minimum signed char value */
#define SCHAR_MAX 127 /* maximum signed char value */
#define CHAR_MIN SCHAR_MIN /* mimimum char value */
#define CHAR_MAX SCHAR_MAX /* maximum char value */
#define SHRT_MIN (-32768) /* minimum (signed) short value */
#define SHRT_MAX 32767 /* maximum (signed) short value */
#define USHRT_MAX 0xffff /* maximum unsigned short value */
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
#define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */
#define LONG_MAX 2147483647L /* maximum (signed) long value */
#define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */
#define LLONG_MAX 9223372036854775807i64 /* maximum signed long long int value */
#define LLONG_MIN (-9223372036854775807i64 - 1) /* minimum signed long long int value */
#define ULLONG_MAX 0xffffffffffffffffui64 /* maximum unsigned long long int value */