C标准的头文件有多少个?
87年 ANSI公布的 ANSI C标准有15个,
90年 ISO因为接受了ANSI的标准,所以公布的 ISO C 也是15个
95年 ISO增加3个头文件 18个
99年 ISO增加6个头文件 24个
11年 ISO增加5个头文件 29个
实际上C的标准头文件到底有多少,是看编译器的,编译器支持标准ANSI C,那就是15个,如果支持C99,就是24个,支持C11,就是29个。
1.<assert.h>
提供且只提供了一个名为assert的宏,用于验证程序作出的假设,如果假设为非,直接结束程序,可在程序中加入NDEBUG宏来屏蔽assert宏
#define NDEBUG
#include <stdio.h>
#include<assert.h>
void main()
{
int a=-1;
assert(a>0);
printf("assert is true");
}
上述代码中,如果先注释掉第一行,程序会运行assert宏,判断假设为非,然后打印信息,退出程序;如果第一行保留,程序会跳过assert宏的执行,直接执行printf函数,输出信息。
2.<ctype.h>
提供一系列测试函数,测试字符是否是特定的字符序列,包括是否是字母,数字,是否大小写,是否是控制字符,可显字符,可打印字符,空格符,跳格符等等。
3.<errno.h>
这个头文件定义了一个整形变量errno,程序启动时,errno=0,,C标准库中某些函数可以修改它的值,可以通过errno的值反应一些特定的错误。一些操作文件的函数经常会修改errno,比如出现诸如 文件已存在,打开过多文件,目录不存在等
4.<float.h>
包含一组和浮点值相关的依赖于平台的常量,主要和float,double,long double相关的一些值,比如float的最大值,最小值,尾数中的位数等等。
5.<limit.h>
各种变量类型的各种属性,各种变量的极值大小被这个头文件中的宏限制,比如int或者char的最大和最小值
6.<locale.h>
定义了特定地域的设置,比如日期格式和货币符号,感觉一般用不到
7.<math.h>
绝壁常用的头文件,定义了各种数学函数,求对数、指数、求幂等等
8.<setjmp.h>
提供一种类似goto跳转的机制,包括两个宏setjmp和longjmp
9.<signal.h>
用于信号处理
10.<stdarg.h>
定义了一个变量类型va_list和三个宏va_start(),va_arg(),va_end(),用在获取可变参数的函数里面的参数
11.<stddef.h>
定义了各种变量类型和宏,这些定义大部分会出现在其它头文件中,所以这个头文件不太常见
12.<stdio.h>
还需要说明么...输入输出,流操作必备
13.<stdlib.h>
定义了各种通用的工具函数,比如各种类型的转换函数,内存管理函数,随机数函数等
14.<string.h>
对字符进行操作的各种函数,字符比较,拷贝,设置大小,追加字符等操作
15.<time.h>
主要是保存时间和日期的结构timeval及保存时间的类型,获取时间相关的参数