1.include <limits.h>和# include区别
我们知道c++是c的超集,c++中几乎是完全保留c语言,并添加了面向对象和泛型编程。 c++语言和c语言在包含头文件时有所区别
C语言在包含头文件时,采用# include<limits.h> ,以.h为结尾,文件有扩展名 C++语言在包含头文件时,不以.h为结尾,文件无扩展名。同时,有些C头文件被转化为C++头文件,这些被重新命名,去掉了.h扩展名,同时在文件名前加c,表明来自于C语言。
因此,根据以上规则,C++中包含limits文件时,采用# include<climits>
具体可参见下图:
2.# limits文件或者climits文件的实质
limits文件或者climits文件的实质是一个宏定义文件。
概要
#define CHAR_BIT
#define SCHAR_MIN
#define SCHAR_MAX
#define UCHAR_MAX
#define CHAR_MIN
#define CHAR_MAX
#define MB_LEN_MAX
#define SHRT_MIN
#define SHRT_MAX
#define USHRT_MAX
#define INT_MIN
#define INT_MAX
#define UINT_MAX
#define LONG_MIN
#define LONG_MAX
#define ULONG_MAX
#define LLONG_MIN
#define LLONG_MAX
#define ULLONG_MAX
文件中都是一些宏定义,比如INT_MAX是一个宏常量,表明有符号整形的最大值。 我们使用下述程序,可以看本系统中支持的有符号整形的最大值是多少。
#include<iostream>
#include<climits>
using namespace std;
int main()
{
int n_int = INT_MAX;
cout<<"本系统中整形INT的最大值为:"<<n_int<<endl;
}
笔者系统上,INT_MAX值为2147483647,它等于2^31-1,是笔者操作系统中最大的符号型整型常量。
|