在本教程中,我们将学习一些定义的宏常量,这些常量用于查找整数类型的大小,例如字符,短整数,长整数,长整数。这些宏常量用于查找任何整数类型的数据类型的最小和最大大小。
这些宏在<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