-
2021-12-29 15:57:43更多相关内容
-
头文件的内容以及如何引用头文件
2020-09-27 19:27:41头文件的引用 头文件引用有两种形式:#include < stdio.h> 和 include "main.h “。 用< >引用的一般是编译器提供的头文件,编译时会在指定的目录中去查找头文件。用” “引用的一般是自己写的头文件,...头文件的引用
头文件引用有两种形式:#include < stdio.h> 和 include "main.h “。
用< >引用的一般是编译器提供的头文件,编译时会在指定的目录中去查找头文件。用” “引用的一般是自己写的头文件,编译时,编译器会在项目所在的文件夹中进行查找。
总结:系统提供的头文件用< >引用, 自己写的用” "引用。头文件的内容
头文件里一般包括宏定义, 全局变量, 函数原型声明,头文件。自己写的头文件没有办法引用,原来是因为没有包括在一个项目里。
步骤如下:
首先新建一个文件夹
新建一个项目,选择空项目,保存到上一步的文件夹中
在项目里新建自己的c文件
c文件写上要用的函数
自己定义一个头文件,把自己的函数声明放里面
编译链接,成功
-
静态库建立时引用头文件
2022-05-07 16:51:41此图是建立静态库,我想问当我们不引图中所指的那个头文件时在使用这个静态库会报错找不到函数是为什么? 我想得知底层的实现,因为我现在已知的是静态库的建立时汇编后的结果,所以我在想即使没有引头文件我们不也是... -
软件项目中引用头文件的几种方法及要点
2021-03-07 00:09:22关注+星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 |嵌入式专栏好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一...关注+星标公众号,不错过精彩内容
作者 | strongerHuang
微信公众号 | 嵌入式专栏
好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一些细节也会影响你代码质量和编译效率。
下面就来说说与头文件有关的知识;
嵌入式专栏
1
引号“”和尖括号<>
#include使用引号“” 还是 尖括号<> 这个是有规定的。
通常来说:系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。
#include <xxx.h>
用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找。
#include "xxx.h"
这里可以参看我之前分享的一篇文章:#include使用引号“”和尖括号<>的区别?
嵌入式专栏
2
引用头文件路径问题
一个项目通常有多个源文件,你要让编译器找到这些存储在不同路径下的源文件,就必须要让编译器知道源代码所在(路径)位置。
引用头文件路径的方式有多种,在代码中添加路径,在IDE工具中添加路径,还有分绝对路径和相对路径。下面就来简单说说:
1.源代码中引用头文件
不使用集成开发环境(IDE),通常会在源代码中添加路径信息,比如在源代码文件中引用头文件:
#include "/strongerhuang/robot/project/bsp/bsp_uart.h" #include "../bsp/bsp_uart.h"
但是,你会发现上面那个引用有什么区别吗?
一个是绝对路径:
#include "/strongerhuang/robot/project/bsp/bsp_uart.h"
一个是相对路径:
#include "../bsp/bsp_uart.h"
2.IDE工具中引用头文件
我们使用的Keil、IAR这种工具,可以不用像上面那样,在源代码中添加路径头文件,只需要在工程中配置编译路径即可。
比如Keil MDK:
通过菜单 Project -> Options for Taget -> C/C++:
Keil MDK默认是相对(工程文件的)路径。
这里推荐扩展阅读(工程选项配置)相关的文章:
IAR EWARM类似:
通过菜单 Project -> Options -> C/C++ Compiler:
IAR默认是绝对路径,通常我们需要修改为相对路径。
这里推荐扩展阅读(工程选项配置)相关的文章:
嵌入式专栏
3
头文件相关内容
这里顺便说下关于头文件的几个重要内容。
1.防止头文件被重复引用
这个问题对于老司机来说,可能不是什么问题,但很多新手却没搞明白是什么意思。
通常,在某xxx.h头文件中,会有类似如下的一部分代码:
#ifndef _XXX_H #define _XXX_H #endif
“#”这是一个预处理指令,什么意思呢?
简单来说就是:如果没有包含XXX.h头文件,就包含;否则不包含(即不重复引用)。
2.全局(全部)头文件
有些工程师喜欢把一个工程中所有的.h头文件放在一个全局的头文件(比如 global.h)中,然后,每个.c源文件去引用这个(global.h)头文件。
这样有利也有弊:
利:简单方便,不用担心因为漏掉一个 .h 文件而引起错误、警告;
弊:只要修改一个.h,工程就需要全局编译,浪费很多时间;
所以,我个人建议不使用这种全局头文件(global.h)来管理头文件。
这种做法只是方便了一时,也不利于管理,在几个源文件这种小项目中可能没觉得什么。
但是,如果项目越来越大,特别几十上百个源代码,每个源文件代码又比较大的情况下,你修改一个 .h 文件,只能慢慢等待编译。
在项目比较敢的时候,这种做法可能会使你心态奔溃。
------------ END ------------
后台回复『嵌入式C语言』『嵌入式软件基础知识』阅读更多相关文章。
欢迎关注我的公众号,回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
欢迎关注我的视频号:
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
-
gcc 编译引用头文件
2021-05-17 15:19:20那么,GCC编译器在编译代码时,解析到需要引用头文件时,就去 -I选项指定的目录下查找。下面我们来举例讲解怎么样定义和使用自己创建的头文件。 首先,我们在源码的当前目录下创建 test.h 文件,文件是以 .h 后缀...GCC编译器提供了-I选项(字母I就是include单词的首字母大写)用来指定头文件所在的目录。那么,GCC编译器在编译代码时,解析到需要引用头文件时,就去 -I选项指定的目录下查找。下面我们来举例讲解怎么样定义和使用自己创建的头文件。
首先,我们在源码的当前目录下创建 test.h 文件,文件是以 .h 后缀结尾,表示一个头文件。test.h头文件的内容如下:
然后,在test.c源文件的代码如下:
其中的代码部分:
#include "test.h" //引用用户自定义头文件
此时,通过#include关键字,引用了用户自定义的头文件。那么,gcc编译如下:
gcc test.c -o exe
注意:test.h头文件与test.c在同一个目录下,所以,gcc在编译test.c的时候,在当前目录下查找test.h头文件。找到该头文件,然后,引用test.h头文件中定义的NUM宏。
程序运行结果如下
可以看到,我们在test.c源文件中,引用了test.h头文件中定义的NUM宏。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
-
python 中如何引用头文件
2021-04-27 04:21:59python 引入 导入 自定义模块, python 引入 导入 外部文件python 引入 导入 自定义模块, python 引入 导入 外部文件项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包如果是web 下,比如说django ... -
多次引用头文件导致的重复定义的问题
2020-07-26 21:11:16头文件被多次调用时,会出现函数体被多次定义的错误 解决 按如下格式写头文件, #ifndef <标识> #define <标识> … #endif 其中,<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识... -
C语言中和“”引用头文件的区别
2021-05-23 21:49:11先去系统目录中找头文件,如果没有再到当前目录下找。所以像标准的头文件 stdio.h和 stdlib.h等用这个方法。 2、""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统... -
C语言基础专题 - 头文件引用
2021-01-19 14:18:27C语言基础专题 - 头文件引用 本文介绍了C语言中头文件的引用方法 阅读本文前推荐阅读C语言预处理 - 由于博主水平有限,疏忽在所难免。若发现错误请告知博主更正:李俊才 ...如何引用头文件? 这个事情我们 -
VS 引用头文件 lib 和 dll
2019-09-05 17:28:451. 引用头文件 右键项目 -> 属性 -> 配置属性 -> C/C++ -> 常规 中的附件包含目录,输入你所要引用的头文件所在的目录。 之后就可以在某个 cpp 文件中 include<xxx.h>,这样就完成引入头文件。 2.... -
C++头文件重复引用问题
2022-05-31 15:47:50头文件重复引用的情况 先看一张图 A头文件,同时被B、C引用,之后D引用了B、C头文件。此时D相当于引用两次A文件 C++工程的预编译就是将引用文件的代码拷贝过来 在头文件的前后加上 #ifndef #define #endif 这些... -
C或C++引用头文件的方法
2018-10-18 21:43:47经常会遇到两种include引用头文件的情况,其实区别很简单,如下: 1. 引用头文件的两种方式 #include < > #include < >引用的是编译器类库路径里面的头文件。假如你编译器定义的自带... -
[C/C++] “”和引用头文件的区别
2022-05-31 10:31:40头文件引用和“”的区别; -
C语言学习笔记(2):引用头文件所使用的符号区别
2021-05-21 01:31:23C语言引用头文件使用的符号有两种,以头文件stdio.h为例:(1)#include (2)#include “stdio.h”这两种引用方式是存在不同的。第一种引用方式,编译器仅在标准库头文件中进行匹配;第二种引用方式,编译器先在工程... -
工程问题记录:VS引用头文件路径的确定
2021-03-18 10:26:57VS引用头文件路径的确定 在使用VS时,自己创建了需要的h文件和cpp文件,但是在引用这些自己创建的头文件时,之前因为使用相对路径而倍感头痛,总是找不到正确的文件路径,现在找到一个方法可以直接引用头文件... -
防止头文件被重复引用
2022-03-22 17:39:16防止头文件被重复引用 -
C++中头文件的引用
2021-01-26 16:25:50C++引用头文件 <> 和 “” 的区别 1. 引用区别 <> 是从标准库中引用文件 "" 当我们自己创建的工程中的文件没有加入到标准库,用<> 是无法找到文件的,所以需要使用 "" 来引用 1 2 2. 搜索... -
c语言中引用头文件的区别
2018-12-20 14:01:19c语言中引用头文件 “” 和<>的区别 头文件#include <> :表示引用标准库头文件,编译器会从系统配置的库环境中去寻找 头文件#include “”:一般表示用户自己定义使用的头文件,编译器... -
ros引用头文件
2021-01-27 10:42:43例如:ros引用头文件 问题描述: 提示:这里描述项目中遇到的问题: 记录一些让自己陷入误区的时刻:提个醒 下面链接收集其他人的ros引用头文件优秀解决方案,基本解决所有问题(优先打开) : [ 98%] Linking CXX ... -
C++头文件引用问题
2021-01-22 16:05:33C/C++头文件的引用问题(#include使用): 对于一个工程(如下): 在base中包含:func3.h,func3.c,...1、Main.c 中需要引用头文件 func1.h:处于同一文件夹下 #include “func1.h”(直接引用) 2、Main.c 中需要引 -
c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法
2021-05-16 15:31:14文章目录头文件引用头文件1、引用系统头文件2、引用用户头文件实例结语 头文件 头文件是拓展名为.h的文件,其包含了函数的声明和宏定义,它可以被多个源文件引用共享。头文件分为两种类型:编译器自带的系统头文件... -
c++工程头文件引用规范
2021-06-25 13:06:23c++中头文件引用规范及说明 头文件类型说明 这里将一个源文件所能引用的头文件类型分为四类: 源文件对应自身头文件 c标准库头文件 c++标准库头文件 工程内其他头文件 对于工程内部自己定义的头文件,需要用 #... -
vs创建文件自动引用头文件
2020-09-02 00:02:07vs创建文件自动引用头文件 1.找到vcprojectitems下的newc++file.cpp文件 如何找到newc++file.cpp文件参考 2.打开newc++file.cpp文件(推荐notepad++) notepad++官网下载 3.用notepad++打开newc++file.cpp文件后将... -
头文件多重引用解决方法
2021-12-31 16:37:22其他IDE不清楚怎么处理 如果是用VS,通常我们在创建一个头文件的时候,头文件会自带一个#pragma once. 这个表示的意思就是如果这个文件被多重引用的话,它只会被引用一次。 比如 有三个文件A.h,B.h, main.cpp... -
关于VScode引用头文件时一直报错的解决方法
2021-04-22 21:26:32二、"files not found"错误 有时候即使把配置文件都搞定了,还是会出现头文件找不到的错误,我们需要检查一下自己是否使用了Clang插件,这个插件会对头文件的引用造成一定影响。为了消除这个影响,我们可以在配置... -
在vscode里创建项目怎么才可以引用头文件才不会出错
2022-04-29 23:56:34在vscode里编辑项目的时候发现如果把头文件和头文件中函数的实现分开文件来写的话在main文件会显示无法调用函数,只能把include的文件改为函数实现的文件才可以运行,怎么样才可以引用头文件而不是头文件中函数的... -
Linux头文件引用小技巧
2019-12-06 16:45:07将本地头文件引用,#include "test.h"更换为#include <test.h>系统引用方式. 1.目录结构如下 ├── Makefile ├── include │ └── test.h └── main.c # mkdir include # emnacs test.h #include &... -
踩坑-引用头文件导致重复定义问题-extern
2019-02-26 18:37:31 今天在一个.h头文件中定义了一个全局变量,然后在两个.cpp文件中引用了该头文件,导致变量重复定义问题。 我们知道,变量有声明和定义,声明可以有多次,但是定义只能有一次。打个比方: //a.h文件 int a; ... -
引用头文件
2018-07-19 19:35:42首先我们需要明确的概念: 头文件:就是存放功能模块 提供函数原型或类型的声明 后缀名:.h ...2:写一个后缀名为.h的头文件 引用外部文件加extern(该头文件包含第一步写的函数原型或类型声明) (se...