0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是头文件?头文件编写的一般格式要求是怎样?

冬至子 来源:沙鸥笔记 作者:沙鸥笔记 2023-11-08 16:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文介绍头文件的定义、编写、保存及引用等方面的内容,包括了一般的格式要求、例程等。

什么是头文件?

头文件在C语言程序开发中一般来说是必需的,一般在C程序的开头就得引用头文件。

头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

为什么要用头文件?

如果没有头文件,那么定义只有就在C文件中进行,有几个坏处:

->不便于阅读。定义和功能代码放在一起,可读性变差;

->重复劳动,增加程序量。在各个C文件中,只要用到了就得重新定义一下,重复的代码会变多等。

如需项目开发定制,可Q-Q: 2531二六3726。

头文件编写的一般格式要求是怎样?

很多东西都有格式的,按照格式来做一般不会出错。图 1为头文件定义的一般结构。

开头的#ifndef和最后的#endif需要成对出现,它的含义为假如没有定义某文件的话,那么执行某些操作。在#ifndef和#endif之间可以编写头文件定义的代码,如载入其他头文件、引脚定义、子程序预定义等的。

下表给出了图 1中部分代码的解释。

表 1 图1的要点解释

一个头文件编写的例子

有个例子,会有更加生动的理解。图 2为一个头文件定义的例子,头文件的名字位relaycontrol.h,这个头文件里包含了载入其他头文件、引脚定义、符号变量定义、子程序预定义等内容。

头文件的保存方法

保存头文件一般有2种方法:

(1)、在keil中保存H文件:如例,假如在keil中新建了H文件,编写完头文件代码后,点击保存按钮,命名后保存在电脑硬盘(与引用它的C文件在同一个文件夹)里即可,本例中保存的头文件为relaycontrol.h。

(2)、在电脑里新建一个TXT文件,再改扩展名为.h:在电脑硬盘(与引用它的C文件在同一个文件夹)中新建一个txt文件,写入头文件代码,保存,并改扩展名为.h。本例中将这个txt文件名及扩展名改为relaycontrol.h。

怎么在C程序中引用头文件?

在C程序中,头文件需要先引用后才能使用,一般引用头文件放在程序的开头位置。

在C文件中引用头文件的方法很简单,就是在程序中用“#include”指令把相应的头文件载入就行了。

引用后,在这个C文件中就能使用头文件里已经定义的内容,如定义的引脚、符号变量和子程序等。

是否需要帮助?

提供单片机PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,软件、APP开发设计定制订做。如有项目需要,可Q:2531二六3726。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146106
  • 头文件
    +关注

    关注

    0

    文章

    26

    浏览量

    10342
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术资讯 I 文详解 STEP 文件

    本文要点STEP文件种广泛使用的中性文件格式,用于交换3D计算机辅助设计(CAD)数据。STEP文件分为多种类型,适用于特定行业领域及产品开发的全流程。虽然STEP
    的头像 发表于 02-06 16:08 1227次阅读
    技术资讯 I <b class='flag-5'>一</b>文详解 STEP <b class='flag-5'>文件</b>

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件
    的头像 发表于 11-28 07:27 3036次阅读

    RISC-V GCC编译,如何添加math.h头文件

    在使用些数学函数(例如exp)时,需要添加math.h头文件 risc-v embedded gcc在添加math.h函数时,会到riscv-none-embed/lib里寻找链接库文件库libm.a,但编译显示失败:unde
    发表于 11-10 07:50

    基于蜂鸟E203添加完外设后软件头文件添加过程

    对应的头文件,才可以在软件代码里调用。platform.h文件定义了SoC平台相关的宏定义。在里面添加下图所示代码。 AES_CTRL_ADDR _AC(0x10041000,UL)表示AES模块基地址为
    发表于 10-30 06:48

    头文件保护失效,提示变量重复包含,是什么原因导致的?

    我自定了头文件,而且使用了头文件保护机制。但是在两个源文件包含相同的头文件时,依然提示某些变量重复包含。想不出来问题在哪里。 这个
    发表于 10-09 06:19

    RT-thread源码scons --dist --target=vsc;STM32L475-pandora没有STM32L4xx.h头文件是怎么回事?

    原因是这个文件夹没有stm32L4xx.h的头文件
    发表于 09-28 13:00

    无法找到已经存在的头文件,为什么?

    fatal error: stm32f0xx_hal_conf.h: No such file or directory compilation terminated. 这个.H文件在MX里已经自动生成了,为什么还会显示找不到了? 如何解决?哪里有文档可查?
    发表于 09-28 06:25

    RTT如何添加文件夹并加入编译?

    想把个新的工程文件夹(包含若干个源文件头文件)放入同个工程内编译。 试了下把在文件系统添加
    发表于 09-15 07:50

    文读懂WAV音频文件格式

    本文主要为后面ESP32 I2S音频系列文章做铺垫,所以本篇将介绍WAV音频文件格式,并通过C代码生成段1S的正弦波WAV音频写入到SD卡里面。
    的头像 发表于 08-25 17:49 5467次阅读
    <b class='flag-5'>一</b>文读懂WAV音频<b class='flag-5'>文件格式</b>

    RTOS SDK的canmv_net_mgmt网络模块如何编写连接代码?

    从最近源码更新了次后,以前的可执行文件使用出错了,请问有没有大哥知道新版源码怎么编写代码进行操作网络模块canmv_net_mgmt。 或者是操作canmv_net_mgmt的
    发表于 07-25 08:14

    STM32CUBEIDE使用UCOS的时候,头文件路径已经添加了,依旧提示未找到路径怎么解决?

    在使用UCOS的时候,头文件路径已经添加了,他依旧提示未找到路径怎么解决
    发表于 07-25 06:28

    NCS怎么添加.c.h文件到工程

    Directories添加头文件路径 对工程或者文件夹鼠标右击就可以添加文件或者.c文件管理文件等操作。 可以看出,Segger添加源
    的头像 发表于 06-27 14:48 1174次阅读
    NCS怎么添加.c.h<b class='flag-5'>文件</b>到工程

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式
    的头像 发表于 06-10 12:03 868次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件</b>系统被<b class='flag-5'>格式</b>化为Ext4<b class='flag-5'>文件</b>系统的数据恢复案例

    cypress3014在头文件修改编译后,时间不变,这样头文件的程序有被执行吗?

    你好,请问我在头文件修改编译后,时间不变,这样头文件的程序有被执行吗,怎么解决这个问题
    发表于 05-14 06:50

    使用OUT_REG3_VALID触发条件时,GPIF II Designer生成无效的头文件怎么解决?

    使用 OUT_REG3_VALID 触发条件时,GPIF II Designer 生成无效的头文件
    发表于 04-30 06:47