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语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128724
  • 头文件
    +关注

    关注

    0

    文章

    22

    浏览量

    9795
收藏 人收藏

    评论

    相关推荐

    SDK5开源库高频注入的头文件怎么没有?

    ST SDK5开源库,高频注入的头文件怎么没有?只有。c文件。怎么能够获得?
    发表于 04-17 07:37

    如何在Cubemx中添加所有的外设头文件

    cubemx是个图形生成代码的软件,可以很好的提高写代码的效率,减少时间。但同时也有个很大的问题:每次设置完后生成的代码,只包含设置的外设的头文件,如果想要添加其他外设的代码,可能会因此报错
    发表于 04-01 07:46

    C语言中的头文件

    #include 指令会指示 C 预处理器浏览指定的文件作为输入。预处理器的输出包含了已经生成的输出,被引用文件生成的输出以及 #include 指令之后的文本输出。
    发表于 02-23 14:06 153次阅读

    CY8CKIT-062-WiFi-BT找不到头文件,编辑不了代码怎么处理?

    吗?如果是因为头文件缺失导致的话,那我可以直接把样例项目中的GUI.h复制到自己创建的项目的文件夹下吗?可是我不太清楚放在文件夹的具体位置,可以帮我指明下吗? 另外,我在运行了项目
    发表于 01-25 06:48

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件会报错?如何正确添加自己编写头文件

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件会报错?怎么正确添加自己编写头文件
    发表于 01-11 06:09

    C语言必备知识头文件包含

    头文件在C语言中是非常重要的组成部分。
    的头像 发表于 12-01 18:20 785次阅读

    keil提示头文件找不到怎么解决?

    keil提示头文件找不到 实际上是有这个文件的也是相对路径
    发表于 11-01 06:12

    固件库不用的头文件怎么删除?

    固件库不用的头文件怎么删除
    发表于 10-24 06:25

    KEIL无法增加STC系列的头文件怎么解决?

    关于KEIL无法增加STC 系列的头文件刚开始是提示没有INI文件,是路径错了,后面直接就无法加载。大神们支招
    发表于 10-08 08:36

    求分享MO516LDN的头文件

    以前使用的是MO516LBN,牛卧堂中的初始化向导中就有头文件,但是最近买了批MO516LDN,但是它的头文件不知道在什么地方获取。哪位大神能提供下,或者给连接。还有寄存器手册。
    发表于 08-25 07:39

    C 语言的头文件路径位置问题

    前言 前段时间在写 Linux 专栏的过程中,忽然想到一个问题 :C语言的头文件路径,因为在GCC环境下面,可以很直观的了解到程序对头文件的查找位置,但是对于使用集成开发环境 KEIL 或者 IAR
    的头像 发表于 06-22 10:05 4137次阅读
    C 语言的<b class='flag-5'>头文件</b>路径位置问题

    求分享NM1320的资料和头文件

    网站上没有NM1320的资料和头文件
    发表于 06-15 10:02

    你应该搞懂的 C 语言头文件路径问题

    前段时间在写 Linux 专栏的过程中,忽然想到一个问题 :C语言的头文件路径,因为在GCC环境下面,可以很直观的了解到程序对头文件的查找位置,但是对于使用集成开发环境 KEIL 或者 IAR 的朋友们来说,一些系统的库文件路径
    的头像 发表于 06-14 11:41 3173次阅读
    你应该搞懂的 C 语言<b class='flag-5'>头文件</b>路径问题

    【笔记】单片机头文件的顺序会让程序报错?

    头文件的正确顺序主要涉及以下几个方面:1.依赖关系和声明顺序:在编写单片机程序时,可能会有一些头文件之间存在依赖关系。某些头文件中的定义和声明可能依赖于其他头文
    的头像 发表于 05-19 09:50 917次阅读
    【笔记】单片机<b class='flag-5'>头文件</b>的顺序会让程序报错?

    基于DWC2的USB驱动开发-0x06 DWC2 USB2.0 IP 头文件与寄存器的读写操作

    上一篇我们介绍了控制器的寄存器,而驱动的编写底层无非就是配置各种寄存器,所以第一步先要准备寄存器的头文件,对寄存器的操作进行封装。 我们这里提供两种形式,结构体形式和宏的形式。
    的头像 发表于 05-16 14:04 2005次阅读
    基于DWC2的USB驱动开发-0x06 DWC2 USB2.0 IP <b class='flag-5'>头文件</b>与寄存器的读写操作