例:#include "./BSP/LCD/lcd.h"为什么有的头文件加了路径?
先看AI的回答:
在C和C++编程中,当我们在源文件中包含(或称为“引入”或“导入”)一个头文件时,编译器需要知道这个头文件的位置。通常,编译器会在几个预定义的目录(如系统目录、项目的include目录等)中查找这些头文件。但有时,这些头文件可能不在这些标准目录中,或者可能有多个同名文件,并且你想确保包含的是正确的一个。
在这种情况下,你可以通过提供头文件的完整路径来明确地告诉编译器去哪里找这个文件。这就是为什么你有时会在#include指令中看到路径的原因。
例如,#include "./BSP/LCD/lcd.h" 告诉编译器在当前目录(由.表示)下的BSP/LCD/子目录中查找lcd.h文件。
这种写法有几个要点:
./表示当前目录。你也可以使用其他相对路径,如../表示上一级目录。总之,通过在#include指令中包含路径,你可以更精确地控制编译器查找头文件的方式,并确保引入的是正确的文件。
下面是验证:
文件实际路径:

上面的四个文件每一个都包含各自的.c和.h文件

而我们在keil中添加头文件的路径是这样的:

在main.c中引用:

经编译正确,对应关系:

唯一区别的是#include "./LCD/lcd.h" .上图改成下图同样效果:
