在本教程中,我们将学习一些定义的宏常量,这些常量用于查找整数类型的大小,例如字符,短整数,长整数,长整数。这些宏常量用于查找任何整数类型的数据类型的最小和最大大小。
这些宏在<limits.h>头文件和<climits>头文件(对于C ++ 11)中定义。
此处是宏常量的列表,可用于查找特定整数数据类型的大小,最小值和最大值。
宏常数 | 描述 | 值* |
---|---|---|
CHAR_BIT | 它在char对象中返回其编号。 | 8 |
SCHAR_MIN | 它返回签名的char对象的最小值。 | -128 |
SCHAR_MAX | 它返回已签名char对象的最大值。 | 127 |
UCHAR_MAX | 它返回一个无符号char对象的最大值。 | 255 |
CHAR_MIN | 它返回一个char对象的最小值。 | 0或SCHAR_MIN |
CHAR_MAX | 它返回一个char对象的最大值 | SCHAR_MAX或UCHAR_MAX |
MB_LEN_MAX | 对于任何语言环境,它以多字节字符形式返回最大字节数 | 1或更大 |
SHRT_MIN | 它返回带符号的short int对象的最小值。 | -32768 |
SHRT_MAX | 它返回一个有符号的short int对象的最大值。 | 32767 |
USHRT_MAX | 它返回一个无符号short int对象的最大值。 | 65535 |
INT_MIN | 它返回一个有符号的int对象的最小值。 | -32768或-2147483648 |
INT_MAX | 它返回一个有符号的int对象的最大值。 | 32767或2147483647 |
UINT_MAX | 它返回一个无符号int对象的最大值。 | 65535或4294967295 |
LONG_MIN | 它返回一个有符号的long int对象的最小值。 | -2147483648或-9223372036854775808 |
LONG_MAX | 它返回一个有符号的long int对象的最大值。 | 2147483647或9223372036854775807 |
ULONG_MAX | 它返回一个无符号long int对象的最大值。 | 4294967295或18446744073709551615 |
LLONG_MIN | 它返回一个有符号long long int对象的最小值。 | -9223372036854775808 |
LLONG_MAX | 它返回一个有符号long long int对象的最大值。 | 9223372036854775807 |
ULLONG_MAX | 它返回一个无符号long long int对象的最大值。 | 18446744073709551615 |
*实际值取决于编译器体系结构或库的实现。
参考:C ++ <climits>(limits.h)
//C ++程序打印整数类型的大小 #include<iostream> #include<climits> using namespace std; int main(){ cout << "CHAR_BIT " << CHAR_BIT << endl; cout << "SCHAR_MIN " << SCHAR_MIN << endl; cout << "SCHAR_MAX " << SCHAR_MAX << endl; cout << "UCHAR_MAX " << UCHAR_MAX << endl; cout << "CHAR_MIN " << CHAR_MIN << endl; cout << "CHAR_MAX " << CHAR_MAX << endl; cout << "MB_LEN_MAX " << MB_LEN_MAX << endl; cout << "SHRT_MIN " << SHRT_MIN << endl; cout << "SHRT_MAX " << SHRT_MAX << endl; cout << "USHRT_MAX " << USHRT_MAX << endl; cout << "INT_MIN " << INT_MIN << endl; cout << "INT_MAX " << INT_MAX << endl; cout << "UINT_MAX " << UINT_MAX << endl; cout << "LONG_MIN " << LONG_MIN << endl; cout << "LONG_MAX " << LONG_MAX << endl; cout << "ULONG_MAX " << ULONG_MAX << endl; cout << "LLONG_MIN " << LLONG_MIN << endl; cout << "LLONG_MAX " << LLONG_MAX << endl; cout << "ULLONG_MAX " << ULLONG_MAX << endl; return 0; }
输出结果
CHAR_BIT 8 SCHAR_MIN -128 SCHAR_MAX 127 UCHAR_MAX 255 CHAR_MIN -128 CHAR_MAX 127 MB_LEN_MAX 16 SHRT_MIN -32768 SHRT_MAX 32767 USHRT_MAX 65535 INT_MIN -2147483648 INT_MAX 2147483647 UINT_MAX 4294967295 LONG_MIN -9223372036854775808 LONG_MAX 9223372036854775807 ULONG_MAX 18446744073709551615 LLONG_MIN -9223372036854775808 LLONG_MAX 9223372036854775807 ULLONG_MAX 18446744073709551615