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

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

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

相关推荐
jimy12 小时前
C语言中的 “size_t ”类型
c语言·开发语言
wuminyu2 小时前
专家视角看Lambda表达式的原理解析
java·linux·c语言·jvm·c++
modelmd2 小时前
研究C语言的hello world输出
c语言·开发语言·chrome
12.=0.3 小时前
【stm32_7】定时器的原理与应用、基本定时器、通用定时器、PWM、模拟脉冲信号的宽度、利用PWM控制外设、逻辑分析仪的使用
c语言·stm32·单片机·嵌入式硬件
jimy13 小时前
C语言历史版本和gnu扩展版本
c语言·算法·gnu
70asunflower4 小时前
堆与栈:C 语言内存管理的核心概念
c语言·开发语言
我不是懒洋洋4 小时前
【数据结构】二叉树OJ(单值二叉树、检查两棵树是否相同、对称二叉树、二叉树的前序遍历、另一颗树的子树)
c语言·数据结构·c++·经验分享·算法·leetcode·visual studio
爱编码的小八嘎4 小时前
C语言完美演绎9-8
c语言
wljy14 小时前
每日一题(2026.4.29) 猫猫与数学
c语言·c++·算法·蓝桥杯·stl·牛客