#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");
}
执行上面示例代码,得到以下结果 -
Hello C
#include注意事项:
事项1:在#include
指令中,注释不被识别。所以在#include <a//b>
的情况下,a//b
将被视为文件名。
事项2:在#include
指令中,反斜杠被认为是普通文本不是转义序列。所以在#include <a\nb>
的情况下,\nb
被视为文件名。
事项3:只能在文件名后使用注释,否则会给出错误。
#include、#include
#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
这个头文件的。