在头文件climits(limits.h)以宏定义的方式定义了各种符号常量来表示各种整型类型表示数的范围,如int的最大最小值,long的最大最小值等。
符号常量 |
表示 |
CHAR_BIT |
char 的位数 |
CHAR_MAX |
char 的最大值 |
CHAR_MIN |
char 的最小值 |
SCHAR_MAX |
signed char 的最大值 |
SCHAR_MIN |
signed char 的最小值 |
UCHAR_MAX |
unsigned char 的最大值 |
SHRT_MAX |
short 的最大值 |
SHRT_MIN |
short 的最小值 |
USHRT_MAX |
unsigned short 的最大值 |
INT_MAX |
int 的最大值 |
INT_MIN |
int 的最小值 |
UNIT_MAX |
unsigned int 的最大值 |
LONG_MAX |
long 的最大值 |
LONG_MIN |
long 的最小值 |
LONG_MAX |
unsigned long 的最大值 |
- #include <iostream>
- #include <climits>
- using namespace std;
- int main()
- {
- cout << "Size:" << endl;
- cout << "int is " << sizeof (int) << "bytes." << endl;
- cout << "short is " << sizeof (short) << "bytes." << endl;
- cout << "long is " << sizeof (long) << "bytes." << endl << endl;
- cout << "Bits per byte = " << CHAR_BIT << endl << endl;
- cout << "Maximum values:" << endl;
- cout << "int: " << INT_MAX << endl;
- cout << "short: " << SHRT_MAX << endl;
- cout << "long: " << LONG_MAX << endl;
- cout << "char: " << CHAR_MAX << endl;
- cout << "signed char: " << SCHAR_MAX << endl;
- cout << "unsigned int: " << UINT_MAX << endl;
- cout << "unsigned short:" << USHRT_MAX << endl;
- cout << "unsigned long: " << ULONG_MAX << endl;
- cout << "unsigned char: " << UCHAR_MAX << endl << endl;
- cout << "Minimum values:" << endl;
- cout << "int: " << INT_MIN << endl;
- cout << "short: " << SHRT_MIN << endl;
- cout << "long: " << LONG_MIN <<endl;
- cout << "char: " << CHAR_MIN <<endl;
- cout << "signed char: " << SCHAR_MIN <<endl;
- system("pause");
- return 0;
- }
运行结果
结果与下标一致。
注意:头文件climits中的符号常量是获知整型数据的表数范围,并不能获取浮点类型数据的表数范围。
<cfloat> 该头文件包含了系统的浮点数的长度限制,它以取代了头文件<float.h>
<climits>该头文件包含了系统的整数长度的限制,它已取代了头文件<limits.h>