![C语言王者归来](https://wfqqreader-1252317822.image.myqcloud.com/cover/681/52842681/b_52842681.jpg)
1-8-3 引用头文件
以上程序第3行及第4行的“#include”指令,是将函数库引用在编译程序内,未来程序链接后,即可产生正常的可执行文件。以上程序第10行~第12行的printf( )函数属于“stdio.h”头文件,所以第3行“#include stdio.h”将促使可正常使用printf( )函数调用。第4行的“#include stdlib.h”,stdlib.h是标准函数库头文件,将促使可正常使用system( )函数调用,下面章节会介绍更多C语言的函数库,只要此函数是在stdlib.h内定义,就不需使用#include引用该函数的头文件。第13行的system("pause")函数可以冻结窗口,同时促使窗口出现“请按任意键继续…”,此时程序会先暂停,当用户按下键盘上的任意键时,程序将继续往下执行。如果没有system("pause"),屏幕会一闪就结束,我们会看不到执行结果。
stdio.h和stdlib.h为什么又称为头文件(header file)呢?因为它们通常都是在程序开始处被引用,如果你的程序文件如下:
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P22_795.jpg?sign=1738815348-F9p8F3mu7K7JxvgoSqdJbqfAenlZO5Su-0-e1a0154c4df66fd1b10d56ad9f26dac7)
头文件stdio.h如下:
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P22_798.jpg?sign=1738815348-Hy9TKoJrGwdhOcLJBoWEI9HWEu08MeY8-0-1a9876cf6313defad1b554076654b001)
头文件stdlib.h如下:
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P22_25335.jpg?sign=1738815348-m68N0sZDqzzwH5kwB8V8dl833huw5QHZ-0-16383acb759281731908a6ef641c4206)
上述程序在编译时,“#include <stdio.h>”和“#include <stdlib.h>”分别被stdio.h和stdlib.h头文件取代,如下图所示。
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P23_847.jpg?sign=1738815348-Ogw6deDE2aw51ev4OMix5m9lkkcqBLiT-0-21fafd3eb4f3e9de00ccca8673146d58)
我们引用了头文件,读者可能会好奇,这些头文件存放在哪里?其实一般在编译程序文件夹内,通常有一个include文件夹,头文件就存放在此文件夹内。
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P23_855.jpg?sign=1738815348-tAFGfhZmEJPJvHR1NqpkWXI01zKV4uIJ-0-9339496f5df18c722189494744133675)
例如,若将Dev C++安装在C盘,则可在“C:\Dev-Cpp”文件夹内找到include文件夹,头文件就存放在此文件夹内。
其实有些C语言编译程序,对是否在程序开头加上<#include stdio.h>和<#include stdlib.h>并不十分介意,程序仍可正常编译及执行,这是因为编译程序在编译时会自动加载头文件stdio.h和stdlib.h。有些编译程序对未在开头加上<#include stdio.h>和<#include stdlib.h>的程序会出现警告信息,但仍允许编译及执行。笔者建议最好照标准程序设计原则,该引用就引用,这样可确保所设计的程序未来能在所有编译程序上执行。同时,所设计程序的可移植性也大大提高了。