#include 伪指令
preprocessor include 伪指令 使预处理器将伪指令替换为指定文件的内容。
如果 file_name 括在双引号中,例如:
#include "payroll.h"它被视为用户定义的文件,并且可以表示头或源文件。如果将 file_name 括在尖括号中,例如:
#include <stdio.h>它被视为系统定义的文件,并且必须表示头文件。换行符和 > 字符不能出现在由 < 和 >定界的文件名中。 换行符和 " (双引号) 字符不能出现在由 " 和 "定界的文件名中,尽管 > 可以。
file_path 可以是绝对路径或相对路径。 如果使用双引号,并且 file_path 是相对路径,或者未指定,那么预处理器会将包含文件的目录添加到要搜索包含文件的路径列表中。 如果使用双尖括号,并且 file_path 是相对路径,或者未指定,那么预处理器 不会 将包含文件的目录添加到要搜索包含文件的路径列表中。
预处理器解析
#include 伪指令中包含的宏。 在宏替换之后,生成的令牌序列由包含在双引号或字符 < 和 >中的文件名组成。 例如:#define MONTH <july.h>
#include MONTH多个文件所使用的声明可以放在一个文件中,并随
#include 一起包含在使用它们的每个文件中。 例如,以下文件 defs.h 包含多个定义,并包含另一个声明文件:/* defs.h */
#define TRUE 1
#define FALSE 0
#define BUFFERSIZE 512
#define MAX_ROW 66
#define MAX_COLUMN 80
extern int hour;
extern int min;
extern int sec;
#include "mydefs.h"您可以使用以下伪指令来嵌入
defs.h 中显示的定义:#include "defs.h"在以下示例中,
#define 组合了多个预处理器宏以定义表示 C 标准 I/O 头文件的名称的宏。 #include 使头文件可供程序使用。#define C_IO_HEADER <stdio.h>
/* The following is equivalent to:
* #include <stdio.h>
*/
#include C_IO_HEADER
在 中, 预处理器对头文件和包含文件名进行了更改,以便为C和C++编译器提供通用的预处理器接口。 C++11 C99 #include 伪指令中头文件名的第一个字符不得是 C++11中的数字。 更多信息,请参阅 C++11 ( C++11 )中采用的 C99 预处理器功能。 
