首页 » C语言解惑 » C语言解惑全文在线阅读

《C语言解惑》23.3 一个源文件和一个头文件

关灯直达底部

【例23.4】将23.2节的源文件c23_3.c改造为使用一个源文件和一个头文件的程序结构。

【解答】这时要为源文件设计自己的头文件,即将其改造为两个文件。将第一部分的3条语句从c23_3.c文件中取出,放到一个名为c23_4.h的头文件中。下面是头文件的内容。


//头文件c23_4.h#include <stdio.h>          //1包含stdio.h头文件const int NUM=100;          //2 定义常量变量NUM=100int max(int,int);          //3 函数max的原型声明  

这里使用const定义常量变量代替原来使用#define语句定义的宏定义,以便演示const语句的使用方法。将剩下的c23_3.c的内容改为c23_4.c。

产生头文件的方法与产生C程序源文件的方法类似,具体方法如下。

(1)假设已经产生如图23-2所示的项目c23_4和源文件c23_4.c。用鼠标选中“Header Files”,然后使用文件菜单的“New”命令,弹出如图23-3所示的“New”对话框。

图23-2 产生的c6.h示意图

图23-3 添加头文件c23_4.h示意图

(2)选择图23-3的Files列表框中的“C/C++Header Files”项,在右边的“File”框中输入c23_4(因为默认为后缀.h文件,所以不必输入c23_4.h)即可。

(3)在右边的编辑框中编辑头文件c23_4.h。编辑结果参见图23-2。

由此可见,头文件中除了用来编写预处理命令和声明函数原型之外,还可以声明或定义全局变量。

这种结构要求在源文件c23_4.c中,使用#include将自己设计的头文件c23_4.h包含进去。一般来讲,这个头文件在项目目录c23_4之下,所以应该使用双引号。即


#include "c23_4.h"  

下面是源程序文件c23_4.c的内容。


//源文件c23_4.c#include "c23_4.h"         //注意使用双引号包含c6.hint main( )                //主函数{     int a,b,x;     a=2; b=3;     x=NUM*max( a,b );     printf("%d/n",x);     return 0;}int max(int m1, int m2){     if (m1 > m2 )   return m1+NUM;     else            return m2+NUM;}  

头文件是不能编译的,选中源文件c23_4.c,编译并运行程序,输出10300。头文件的关联方式是系统设计好的,只要按照约定,就可以实现程序的功能。

可以用下面的简单构造模型表示它的构成。

(1)头文件:用来编写预处理命令、函数原型声明及全局变量声明或定义。

(2)源文件:包含头文件、编写相应主程序和函数。