STM32程序(移植)中头文件的路径

news2025/2/28 6:44:10

例:#include "./BSP/LCD/lcd.h"为什么有的头文件加了路径?

先看AI的回答:

在C和C++编程中,当我们在源文件中包含(或称为“引入”或“导入”)一个头文件时,编译器需要知道这个头文件的位置。通常,编译器会在几个预定义的目录(如系统目录、项目的include目录等)中查找这些头文件。但有时,这些头文件可能不在这些标准目录中,或者可能有多个同名文件,并且你想确保包含的是正确的一个。

在这种情况下,你可以通过提供头文件的完整路径来明确地告诉编译器去哪里找这个文件。这就是为什么你有时会在#include指令中看到路径的原因。

例如,#include "./BSP/LCD/lcd.h" 告诉编译器在当前目录(由.表示)下的BSP/LCD/子目录中查找lcd.h文件。

这种写法有几个要点:

  1. 相对路径:这里使用的是相对路径,其中./表示当前目录。你也可以使用其他相对路径,如../表示上一级目录。
  2. 避免命名冲突:通过指定完整的路径,你可以确保即使系统目录或其他地方有同名的头文件,你的代码也会引用正确的一个。
  3. 组织性:在某些项目中,头文件和其他源文件可能根据功能或模块被组织在不同的目录中。通过指定路径,可以清晰地表明头文件属于哪个部分或模块。
  4. 移植性:使用绝对路径或特定于平台的相对路径可能会降低代码的移植性。因此,当可能时,最好使用相对于项目根目录或源代码文件的相对路径。

总之,通过在#include指令中包含路径,你可以更精确地控制编译器查找头文件的方式,并确保引入的是正确的文件。

                                                       下面是验证:

文件实际路径:

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

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

在main.c中引用:

经编译正确,对应关系:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1473315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hcia datacom课程学习(1):通信基础

1.总体框架 上图为发送方通过互联网传递信息给接收方的过程。 家用路由器会直接集成上图中的四层(vlan,DHCP,静态路由,NAT,PPPoE)。 2.网络性能指标 (1)带宽 单位时间内传输的数…

【linux进程信号(一)】信号的概念以及产生信号的方式

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 进程信号 1. 前言2. 信号的基…

零基础C++开发上位机--基于QT5.15的串口助手(三)

本系列教程本着实践的目的,争取每一节课都带大家做一个小项目,让大家多实践多试验,这样才能知道自己学会与否。 接下来我们这节课,主要学习一下QT的串口编程。做一款自己的串口助手,那么这里默认大家都是具备串口通信…

keil的首次尝试,芯片为stm32F103C6T6

已经试了一下,吐槽这个软件的使用好麻烦啊 安装 然后先去安装对应的pack 这个鬼玩意里找对应的芯片,或者去官网上下载 我是在这里搜到芯片,再去官网下载一个驱动 https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/ 会有一个安装…

Laravel04 eloquent

eloquent 1. eloquent2. 创建eloquent model 以及 取数据 1. eloquent 文档地址: https://learnku.com/docs/laravel/8.x/eloquent/9406 下面是我们,通过laravel的DB类从数据库中获取了post记录,那么有没有可能我们直接获取一个post对象&am…

音频常用测试参数

一、总谐波失真(THDN) 总谐波失真指音频信号源通过功率放大器时,由于非线性元件所引起的输出信号比输入信号多出的额外谐波成份。谐波失真是由于系统不是完全线性造成的,我们用新增加总谐波成份的均方根与原来信号有效值的百分比来…

如何远程访问内网数据库?

天联是一种专门为远程访问内网数据库而设计的组网解决方案。由于其操作简单、跨平台应用、无网络要求以及独创的安全加速方案等原因,天联在几十万用户中广泛应用,解决了各行业客户的远程连接需求。通过采用穿透技术,天联实现了简单易用的远程…

基于雷达影像的洪水监测技术方法详解

洪水发生时候大多数是阴雨天气,光学影像基本上拍不到有效影像。雷达影像这时候就能发挥其不受天气影像的优点。现在星载的雷达卫星非常多,如高分三号、陆探一号、海丝一号(巢湖一号)、哨兵1号等。本文以哨兵1号L1地距(GRD)产品来介…

在Pycharm中运行Django项目如何指定运行的端口

方法步骤: 打开 PyCharm,选择你的 Django 项目。在菜单栏中,选择 “Run” -> “Edit Configurations...”。在打开的 “Run/Debug Configurations” 对话框中,选择你的 Django server 配置(如果没有,你…

nginx(三)重写功能 防盗链 方向代理 等

return 可以写在location server if 里面 return用于完成对请求的处理,并直接向客户端返回响应状态码,比如:可以指定重定向URL(对于特殊重定向状态码,301/302等) 或者是指定提示文本内容(对于特殊状态码403/500等),处于此指令后…

simple-pytest 框架使用指南

simple-pytest 框架使用指南 一、框架介绍简介框架理念:框架地址 二、实现功能三、目录结构四、依赖库五、启动方式六、使用教程1、快速开始1.1、创建用例:1.2、生成py文件1.3、运行脚本1.3.1 单个脚本运行1.3.2 全部运行 1.4 报告查看 2、功能介绍2.1、…

JAVA高并发——CompletableFuture

CompletableFuture是Java 8新增的一个超大型工具类。为什么说它大呢?因为它实现了Future接口,而更重要的是,它也实现了CompletionStage接口。CompletionStage接口也是Java 8中新增的,它拥有多达40种方法!是的&#xff…

大数据职业技术培训包含哪些

技能提升认证考试,旨在通过优化整合涵盖学历教育、职业资格、技术水平和高新技术培训等各种教育培训资源,通过大数据行业政府引导,推进教育培训的社会化,开辟教育培训新途径,围绕大数据技术人才创新能力建设&#xff0…

k8s pv与pvc理解与实践

参考文章: https://blog.csdn.net/qq_41337034/article/details/117220475 一、 pv/pvc简述 Pv是指PersistentVolume,中文含义是持久化存储卷是对底层的共享存储的一种抽象,Pv由管理员进行配置和创建,只要包含存储能力&#xff…

vue3使用elementPlus进行table合并处理

elementPlus中table合并部分列 虚拟数据中公司下有多个客户,公司一样的客户,公司列需要合并,客户如果一样也需要合并进行展示,效果展示 const tableData ref([])自定定义自已想要的数据,一般都是通过接口拿到 //table…

CPU处理器NUMA架构简介

在实际工作中,经常遇到服务器是否开启NUMA、NUMA绑定几颗Core、跨NUMA节点访问的性能下降等等话题。那么NUMA作为非一致性内存访问的多处理器架构,在架构上有什么特性、与SMP架构有哪些不同,调优策略等,本文将作简要介绍。 1、CPU…

什么是SSH端口转发?

目录 前言: 一、SSH端口转发的概念 二、SSH端口转发的类型 2.1 本地端口转发 2.2 远程端口转发 2.3 动态端口转发 三、SSH端口转发的用途 3.1 安全远程访问 3.2 跨越网络限制 3.3 加密流量传输 3.4 跨越 NAT 网络 3.5 安全代理 四、总结 前言&#xff…

设计模式浅析(九) ·模板方法模式

设计模式浅析(九) 模板方法模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷😁😁 模板方法模式 概念 模板方法模式(Template Method Pattern)在Java中是…

【MATLAB】VMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 VMD_MFE_SVM_LSTM神经网络时序预测算法是一种结合了变分模态分解(VMD)、多尺度特征提取(MFE)、支持向量机(SVM)和长…

Java+SpringBoot+Vue+MySQL:美食推荐系统的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…