#include预处理器指令用于将给定文件的代码导入(粘贴)到当前文件中。它用来包括系统定义和用户定义的头文件。如果未找到包含的文件,则编译器会呈现错误。
通过使用#include指令,我们向预处理器提供文件名以查找头文件。使用#include指令有两种变体。
#include #include “filename”
#include <filename>告诉编译器查找保存系统头文件的目录。在UNIX中,它是\usr\include目录。#include
“filename”指示编译器查看运行程序的当前目录。
#include指令示例
下面来看看一个#include指令的简单例子。在这个程序中,我们包括stdio.h文件,因为在这个stdio.h文件中定义了printf()函数。
#include
<stdio.h>
main() {
printf("Hello C");
}
|
执行上面示例代码,得到以下结果 -
#include注意事项:
事项1:在#include指令中,注释不被识别。所以在#include <a//b>的情况下,a//b将被视为文件名。
事项2:在#include指令中,反斜杠被认为是普通文本不是转义序列。所以在#include
<a\nb>的情况下,\nb被视为文件名。
事项3:只能在文件名后使用注释,否则会给出错误。
#include、#include 与 #include “xxx.h”的区别:
#include<xxx.h>:系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。假如你编译器定义的自带头文件引用在
D:\worksp\inc\ 下面,则 #include<stdio.h> 引用的就是
D:\worksp\inc\stdio.h 这个头文件,不管你的项目在什么目录里, D:\worksp\inc\stdio.h
这个路径就定下来了,一般是引用自带的一些头文件,如:stdio.h、conio.h、string.h、stdlib.h
等等。
#include “xxx.h”:用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。假如你的项目目录是在
D:\Projects\tmp\ ,则 #include "my.h"
引用的就是 D:\Projects\tmp\my.h 这个头文件,一般是用来引用自己写的一些头文件。如果使用
#include "" ,它是会先在你项目的当前目录查找是否有对应头文件,如果没有,它还是会在对应的引用目录里面查找对应的头文件。例如,使用
#include "stdio.h" 如果在你项目目录里面,没有 stdio.h
这个头文件,它还是会定位到 D:\worksp\inc\stdio.h 这个头文件的。
|