C语言文件包含与头文件写法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言文件包含与头文件写法

C语言文件包含的处理方法:

(1)处理时间:(#include)预处理阶段

(2)处理方法:在预处理阶段,系统自动对#include命令进行处理。具体做法是:将包含文件的内容复制到包含语句(#include)处,得到新的文件,然后对新的文件进行编译。

一般情况下包含文件分为两种:包含.h 文件和包含.c文件

包含.c文件的编译和编译多文件程序(包含.h的文件就是如此) 是不同的。

(1)包含.c文件

[cpp] view plaincopy

/*file1:main.c */

#include

//#include "fun.c"

int main()

{

int a = 5, b = 19;

c = a;

sun(a, b);

printf("\r\n c = %d\r\n", c);

return 0;

}

/*end of file1*/

[cpp] view plaincopy

[cpp] view plaincopy

/*file2: fun.c*/

int c = 0;

void sun(int a, int b)

{

printf("\r\n a + b = %d\r\n", a+b);

[cpp] view plaincopy

c = 0;

printf("\r\nc = %d\r\n", c);

}

/*end of file2*/

编译时,直接去编译main.c文件,预处理器会先把fun.c文件的内容复制到main.c中,然后在对新的main.c进行编译

只需在执行编译命令gccmain.c -o main

可以通过以下命令查看预处理的结果:gcc-Emain.c -o main.cpp

其实就是将fun.c文件的内容添加到了main函数之前,然后对新的文件进行编译,最终生成可执行程序。

(2)编译多文件程序,对每个.c分别编译生成.o,最后链接生成可执行文件,需要注意的是一定要防止变量的重定义。所以在main. c中的main函数前增加extern int c;

包含.h的编译

[cpp] view plaincopy

/*file1:main.c */

#include

//#include "fun.c"

#include "fun.h"

int main()

{

int a = 5, b = 19;

c = a;

sun(a, b);

printf("\r\n c = %d\r\n", c);

return 0;

}

/*end of file1*/

[cpp] view plaincopy

[cpp] view plaincopy

/*file2: fun.c*/

#include "fun.h"

#include

int c = 0;

void sun(int a, int b)

{

printf("\r\n a + b = %d\r\n", a+b);

c = 0;

printf("\r\nc = %d\r\n", c);

}

/*end of file2*/

[cpp] view plaincopy

[cpp] view plaincopy

/*file3:fun.h*/

extern int c;/*把c声明为外部可用的*/

void sun(int a, int b);/*sun()函数的声明*/

/*end of file3*/

[cpp] view plaincopy

总结几下几点:

(1)对应的.c文件中写变量、函数的定义

(2)对应的.h文件中写变量和函数的声明

(3)如果有数据类型的定义和宏定义,请写在头文件.h中

(4)头文件中一定加上#ifudef。。。#define。。。#endif防止重包含的语句

(5)模块的.c文件中别忘记包含自己的.h文件。

对文件包含命令说明以下几点:

1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例如以下写法都是允许的:

#include"stdio.h"

#include

但是这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;

使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。用户编程时可根据自己文件所在的目录来选择某一种命令形式。

2. 一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include 命令。

3. 文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。

相关文档
最新文档