不同文件夹下使用预处理器指示符#include
使用举例
假设我们有如下一个工程,其中包含了几个源代码和头文件,其中main.cpp是主源代码文件,里面含有main函数
- 在foldder main中包含:func4.hpp,func4.cpp,文件夹folder1和文件夹folder3
#include "func4.hpp"
- 在folder1中包含:main.cpp,func1.hpp,func1.cpp和文件夹func2。
#include "func1.hpp"
- 在folder2中包含:func2.hpp和func2.cpp
#include "func2.hpp"
- 在folder1中包含头文件func1.hpp
#include "func1.hpp"
- 在folder1中包含头文件func2.hpp
#include "folder2/func2.h"
- 在folder1中包含头文件func4.hpp
#include "../func3.h"
//这里main.c和func3.h不在在同一个文件下,但文件夹main和func3.h同级。"../func3.h"表示main.c上一级文件(base)夹下的func3.h头文件。
- 在folder1中使用func3.hpp
#include "../folder3/func3.hpp"
//这里main.cpp和func3.hpp不在在同一个文件下,
//但文件夹folder1和文件夹folder3同级。
//![在这里插入图片描述](https://www.icode9.com/i/ll/?i=39733c0e1e59468a96a7b3730dfebc47.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOI5Zi7aGFzaA==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
"..\folder3\func3.hpp"表示main.cpp上一级文件夹(folder main)下的folder3文件夹下的func4.hpp头文件。
注释
注1:
DOS命令中"cd…“和这里的”…"有类似的作用。
注2: #include “…/folder3/func4.hpp”
- “#include” 可读作 “包含当前源代码或头文件”
- “…” 可读作 “上一级文件夹”
- " " 可读作 “下的”
- “folder3” 可读作 “folder3文件夹”
- “func4.hpp” 可读作 “func4头文件”
连起来就是: “包含当前源代码或头文件上一级文件夹下的folder3文件夹下的func3头文件”。
注3:
用#include 加载头文件时,"./“表示当前目录,”…/"表示当前目录的上一级目录。注意!这个当前目录不是工程所在的目录,而是该文件所在的目录。
在include中,’/‘与’'的功能貌似一样,#include "…/math/Vector3.h"与#include "…\math\Vector3.h"也貌似等价。
在字符串中,’‘是转义字符,要表示’’,在字符串中应写为’\’,因此"…/A/B/C.exe"与 "…\A\B\C.exe"等价。
参考
C/C++不同文件夹下包含头文件的方法及#include的使用