C++跨目录include问题

不同文件夹下使用预处理器指示符#include

使用举例

假设我们有如下一个工程,其中包含了几个源代码和头文件,其中main.cpp是主源代码文件,里面含有main函数:

在foldder main中包含:func4.hpp,func4.cpp,文件夹folder1和文件夹folder3

cpp 复制代码
#include "func4.hpp"

在folder1中包含:main.cpp,func1.hpp,func1.cpp和文件夹func2。

cpp 复制代码
#include "func1.hpp"

在folder2中包含:func2.hpp和func2.cpp

cpp 复制代码
#include "func2.hpp"

在folder1中包含头文件func4.hpp

cpp 复制代码
#include "../func3.h" 
//这里main.c和func3.h不在在同一个文件下,但文件夹main和func3.h同级。"../func3.h"表示main.c上一级文件(base)夹下的func3.h头文件。

在folder1中使用func3.hpp

cpp 复制代码
#include "../folder3/func3.hpp"
//这里main.cpp和func3.hpp不在在同一个文件下,
//但文件夹folder1和文件夹folder3同级。
//![在这里插入图片描述](https://img-blog.csdnimg.cn/39733c0e1e59468a96a7b3730dfebc47.png?x-oss-process=image/watermark,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"等价。

相关推荐
MC皮蛋侠客3 小时前
Google Test 单元测试指南
c++·单元测试·google test
艾莉丝努力练剑4 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
basketball6165 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
Fre丸子_7 小时前
自定义文件夹选取功能
c++
思麟呀9 小时前
C++工业级日志项目(六)异步日志器
linux·c++·windows
PAK向日葵9 小时前
从零实现 Python 虚拟机(二):S.A.A.U.S.O 的总体架构设计
c++·python
无限进步_9 小时前
【C++】weak_ptr、循环引用与线程安全
开发语言·数据结构·c++·算法·安全
咩咦10 小时前
C++学习笔记30:友元类、内部类和封装
c++·学习笔记·类和对象·封装·内部类·友元类·friend
黄小白的进阶之路11 小时前
C++提高编程---3.6 STL-常用容器-queue 容器【P213~P214】
c++
ID_1800790547311 小时前
小红书评论 API 接口详解与实战开发
java·jvm·c++