c语言源文件中#include包含头文件的起始路径是哪里?

最近在看以前同事写的代码,遇到了这样的头文件包含:

在os_cpu.c源文件中:

cpp 复制代码
#include  "..\..\uCOS-II\Source\ucos_ii.h"

在os_flag.c源文件中:

cpp 复制代码
#include  "..\..\uCOS-II\Source\ucos_ii.h"

在lib_mem.c源文件中

cpp 复制代码
#include  "..\uC-LIB\lib_mem.h"

这三个头文件包含语句中使用了"..\"表示的上一个目录,现在就有一个问题,谁的上一个路径,也可以这样说,当前路径是在哪里?

我以前错误的任务都是以keil MDK或者IAR等工程文件为起始路径:

vscode导入keil MDK工程后的头文件包含路径:

vscode导入IAR工程后的头文件包含路径:

发现以上四种情况都是以keil MDK、IAR、vscode工作区等工程文件所在路径为起始路径。于是就错误认为在源文件中所在当前路径也是工程文件所在路径,其实这种想法是错误的。

正确的理解为:源文件所在路径为当前路径,以这个为起始路径,在源文件中包含其他路径的头文件。

这样写代码更容易理解,也更加合理,不用关心工程文件所在路径在哪里,我就以正在编辑的源文件为起始路径,为起始点,然后包含想要包含的头文件。

相关推荐
Zwawa1 小时前
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWM
c语言·单片机·嵌入式
Escalating_xu5 小时前
【C 语言】编译和链接:从源文件、目标文件到可执行程序完整解析
c语言·开发语言
C++ 老炮儿的技术栈5 小时前
std::atomic 是什么
linux·c语言·网络·c++·visual studio
Logic1016 小时前
C语言/数据结构位运算题解:异或XOR找出数轴移动中只出现一次的指令——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
weixin_462901976 小时前
CubeIDE串口重定向 printf
c语言
人邮异步社区7 小时前
C语言好学,还是Python好学?
c语言·开发语言·python
水饺编程9 小时前
第2章:Linux 基础,echo 命令
linux·c语言·汇编
晓蛋10 小时前
C语言中定义常量为什么要加后缀
c语言·溢出·常量定义·后缀·类型限定
Logic10111 小时前
C语言/数据结构贡献法题解:数组权值——所有连续子数组中不同数字个数之和(O(n)解法)
c语言·数据结构·算法·数组·时间复杂度·贡献法·哈希记录
Code_Solitude11 小时前
C语言分支结构练习题(华师版)
c语言·开发语言