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工作区等工程文件所在路径为起始路径。于是就错误认为在源文件中所在当前路径也是工程文件所在路径,其实这种想法是错误的。

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

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

相关推荐
CS_Zero7 小时前
C语言sizeof是函数吗?
c语言·开发语言
Navigator_Z11 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
Navigator_Z12 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode
思麟呀13 小时前
嵌入式入门(一)宏观生态到首次烧录
c语言·嵌入式硬件
小雪崩14 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip
无损检测小白白15 小时前
【嵌入式面试题一】
c语言·单片机
wdfk_prog17 小时前
canopennode-rtt推荐,不只可以做从站,也可以承担主站角色
c语言·开发语言·数据库·学习·算法·深度优先
无小道18 小时前
C/C++——可变参数
c语言·开发语言·c++·可变参数
是隼人18 小时前
buuctf-pwn PWN1题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
zbyyd19 小时前
Linux 网络编程:IO 多路复用
linux·运维·c语言·网络