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

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

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

相关推荐
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
LDR00617 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
Luminous.17 天前
C语言--day30
c语言·开发语言
玖玥拾17 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽17 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
不会C语言的男孩17 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
2601_9516438817 天前
C语言长文整理,关键字和数据类型
c语言·数据类型·关键字·嵌入式开发·格式化输出
m0_5474866617 天前
《C#语言程序设计与实践》 全套PPT课件
c语言·c#·c语言程序设计
✎ ﹏梦醒͜ღ҉繁华落℘17 天前
编程基础 --高内聚,低耦合
c语言·单片机
QK_0017 天前
C语言 static 关键字三大作用
c语言·开发语言