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

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

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

相关推荐
为何创造硅基生物3 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
仰泳之鹅4 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
jolimark4 小时前
C语言自学攻略:小白入门三步走
c语言·编程入门·学习路线·实践项目·自学攻略
cen__y5 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
社交怪人6 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
卢锡荣7 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
AI科技星7 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
kkeeper~8 小时前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言
東隅已逝,桑榆非晚8 小时前
字符函数和字符串函数
c语言·笔记
AI科技星11 小时前
第二章 平行素数对网格:矩形→等腰梯形拓扑变换(完整公理终稿)
c语言·开发语言·线性代数·算法·量子计算·agi