![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=1739442227-t4UPpATF5oEoaBCLfKUIuWznmSQFUilv-0-07867a6c8682d54dc99a3251819e6be1)
头文件stdio.h如下:
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P22_798.jpg?sign=1739442227-VPCCa9TnCJ0G86in8wvxx9Nod9Tg4nkJ-0-5d1ee92b38f77f82360e09bba2063a10)
头文件stdlib.h如下:
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P22_25335.jpg?sign=1739442227-IOGgZtBg7pdbkkPU520Q3sTKUjBupjUL-0-5e22e4f8f20dc81dcb7552a0829c8bf4)
上述程序在编译时,“#include <stdio.h>”和“#include <stdlib.h>”分别被stdio.h和stdlib.h头文件取代,如下图所示。
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P23_847.jpg?sign=1739442227-zVHq4lOGs05O7fQD2Cw189q9FfL1djmW-0-0532161f12290c8ed8316daa173cef4d)
我们引用了头文件,读者可能会好奇,这些头文件存放在哪里?其实一般在编译程序文件夹内,通常有一个include文件夹,头文件就存放在此文件夹内。
![](https://epubservercos.yuewen.com/DA78E4/31398144207520906/epubprivate/OEBPS/Images/Figure-P23_855.jpg?sign=1739442227-ApLwjJFdvZ07pnwyXzGbCTypvYUrqTqA-0-43a9bd1d3e5defc0ab93d2db778fa887)
例如,若将Dev C++安装在C盘,则可在“C:\Dev-Cpp”文件夹内找到include文件夹,头文件就存放在此文件夹内。
其实有些C语言编译程序,对是否在程序开头加上<#include stdio.h>和<#include stdlib.h>并不十分介意,程序仍可正常编译及执行,这是因为编译程序在编译时会自动加载头文件stdio.h和stdlib.h。有些编译程序对未在开头加上<#include stdio.h>和<#include stdlib.h>的程序会出现警告信息,但仍允许编译及执行。笔者建议最好照标准程序设计原则,该引用就引用,这样可确保所设计的程序未来能在所有编译程序上执行。同时,所设计程序的可移植性也大大提高了。