<climits>

张开发
2026/4/20 2:22:01 15 分钟阅读

分享文章

<climits>
简介这个头文件比较特殊不包含复杂的函数而是定义了一系列宏常量用于描述当前编译平台下各种整型数据类型的取值范围最小值和最大值UCHAR_MAX //(255U): 无符号字符型的最大值。U 表示无符号常量 SCHAR_MIN //-128(-2^7) SCHAR_MAX //127(2^7 - 1) //有符号字符型的范围 CHAR_MIN CHAR_MAX //char 类型是否带符号取决于编译器 //如果编译器默认 char 是有符号的则它的范围会等同于 SCHAR SHRT_MIN //-32768(-2^15) SHRT_MAX //32767(2^15 - 1) //标准的 16 位有符号整数范围 USHRT_MAX //655352^16 - 1 INT_MIN INT_MAX //早期的微控制器或 Turbo C 编译器与 SHRT_MIN 、 SHRT_MAX 表示的范围相同 //在现代 32 位或 64 位 Windows/Linux 系统中 //INT_MIN 通常是 -2,147,483,648-2^31 //INT_MAX 通常是 2,147,483,6472^31 - 1 LONG_MIN//表示 long 最小 LONG_MAX//表示 long 最大 //long 类型的数据范围 -2^31 ~ 2^31 - 1 ULONG_MAX //2^32 - 1 LLONG_MIN//表示 long long 最小 LLONG_MAX//表示 long long 最大 //long long 类型的数据范围 -2^63 ~ 2^63 - 1 ULLONG_MAX //18,446,744,073,709,551,615 2^64 - 1EG #include iostream #include climits // 包含整型限制宏定义 #include iomanip // 包含格式化输出工具 using namespace std; int main() { cout left setw(25) Macro Name Value endl; cout -------------------------------------------------- endl; cout setw(25) CHAR_BIT CHAR_BIT bits per byte endl; cout -------------------------------------------------- endl; cout setw(25) SCHAR_MIN (int)SCHAR_MIN endl; cout setw(25) SCHAR_MAX (int)SCHAR_MAX endl; cout setw(25) UCHAR_MAX (int)UCHAR_MAX endl; cout -------------------------------------------------- endl; cout setw(25) SHRT_MIN SHRT_MIN endl; cout setw(25) SHRT_MAX SHRT_MAX endl; cout setw(25) USHRT_MAX USHRT_MAX endl; cout -------------------------------------------------- endl; cout setw(25) INT_MIN INT_MIN endl; cout setw(25) INT_MAX INT_MAX endl; cout setw(25) UINT_MAX UINT_MAX endl; cout -------------------------------------------------- endl; cout setw(25) LONG_MIN LONG_MIN endl; cout setw(25) LONG_MAX LONG_MAX endl; cout setw(25) ULONG_MAX ULONG_MAX endl; cout -------------------------------------------------- endl; cout setw(25) LLONG_MIN LLONG_MIN endl; cout setw(25) LLONG_MAX LLONG_MAX endl; cout setw(25) ULLONG_MAX ULLONG_MAX endl; cout -------------------------------------------------- endl; return 0; }注意宏定义#define在 C 中只是简单的文本替换如果你在包含climits之后重新定义这些宏编译器会以你的定义为准#include iostream #include climits using namespace std; #define INT_MAX 100 #define CHAR_BIT 1 int main() { cout INT_MAX endl;//输出 100与系统自带的不同 cout CHAR_BIT endl;//输出 1 return 0; }

更多文章