background image

样就可以在多次包含同一个头文件时,通过给定编译时的条件来达到不同的效果。例如:

#defineAAA

#include"t.c"

#undefAAA

#include"t.c"

为了避免那些只能包含一次的头文件被多次包含,可以在头文件中用编译时条件来进行

控制。例如:

/*my.h*/

#ifndefMY_H

#defineMY_H

……

#endif

在程序中包含头文件有两种格式:

#include<my.h>

#include"my.h"

第一种方法是用尖括号把头文件括起来。这种格式告诉预处理程序在编译器自带的或外部

库的头文件中搜索被包含的头文件。第二种方法是用双引号把头文件括起来。这种格式告

诉预处理程序在当前被编译的应用程序的源代码文件中搜索被包含的头文件,如果找不

到,再搜索编译器自带的头文件。

采用两种不同包含格式的理由在于,编译器是安装在公共子目录下的,而被编译的

应用程序是在它们自己的私有子目录下的。一个应用程序既包含编译器提供的公共头文件,

也包含自定义的私有头文件。采用两种不同的包含格式使得编译器能够在很多头文件中区

别出一组公共的头文件。

二、宏

宏定义了一个代表特定内容的标识符。预处理过程会把源代码中出现的宏标识符替换成宏