区分这两个头文件的一个简单方法是“<stdio.h>”包含的声明 printf()
和scanf()
而“<stdlib.h>”包含的声明 malloc()
和 free()
. 从这个意义上说,可以认为这两个头文件的主要区别是,“<stdio.h>”包含了“文件相关输入/输出”函数的头信息,“<stdlib.h>”包含了“内存分配/释放”函数的头信息。
等一下,你说“<stdio.h>”是用于文件相关的IO,但是 printf()
和scanf()
不处理文件…作为一个基本原则,在C语言中(由于其与UNIX历史的关联),键盘和显示器也被视为“文件”!事实上,键盘输入是默认的 stdin
文件流同时显示输出是默认的 stdout
文件流。
另外,请注意,尽管“<stdlib.h>”也包含与内存无关的其他类型函数的声明,例如 atoi()
, exit()
, rand()
但为了我们的目的和简单性,我们可以记住 malloc()
和free()
使用 < stdlib.h >
。
需要注意的是,头文件不仅可以包含函数声明,还可以包含常量和变量的定义。甚至宏和新数据类型的定义也可以添加到头文件中。
stdio.h和stdlib.h的区别:
序号 | stdio.h | stdlib.h |
---|---|---|
1. | stdio.h表示标准输入输出 | stdlib.h代表标准库。 |
2. | 它包含与输入/输出函数相关的信息。 | 它包含与内存分配/释放函数相关的信息。 |
3. | 在stdio.h中的一些函数是printf, scanf, getc, putc等 | stdlib.h中的一些函数有malloc、free、abort、exit等。 |
4. | 几乎每个C程序都使用stdio.h。 | stdlib.h只在需要在程序中分配内存时使用。 |