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

    文章

    7642

    浏览量

    144632
  • 头文件
    +关注

    关注

    0

    文章

    26

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    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

    文读懂WAV音频文件格式

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

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

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

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

    Directories添加头文件路径 对工程或者文件夹鼠标右击就可以添加文件或者.c文件管理文件等操作。 可以看出,Segger添加源
    的头像 发表于 06-27 14:48 759次阅读
    NCS怎么添加.c.h<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

    头文件类型定义

    // 开关#define  SW_ON               1#define  SW_OFF              2#define  SW_INVERT           3 // 右移位替代除法#define  SHIFT
    发表于 03-24 18:17 0次下载

    在TouchFX Designer中运行工程,提示头文件找不到,为什么?

    我在TouchFX Designer 中运行工程,提示头文件找不到。 但是在keil中是可以编译通过的。 请问如何添加编译的头文件到设计器中。
    发表于 03-13 08:20

    STM32CubeMX生成代码就会覆盖CMakeLists.txt文件,怎么解决?

    请教下用STM32CubeMX生成代码后,我自己加了头文件和源文件,这些自己加的文件不是要配置到CMakeLists.txt编译么,但
    发表于 03-12 08:03

    EE-110:ELF和DWARF文件格式快速入门

    电子发烧友网站提供《EE-110:ELF和DWARF文件格式快速入门.pdf》资料免费下载
    发表于 01-05 09:41 0次下载
    EE-110:ELF和DWARF<b class='flag-5'>文件格式</b>快速入门

    stdio.h实现了printf函数?

    里面实现了 printf。 实际上并不是,这里就涉及了头文件和库的区别。 头文件一般存放大家都要用的东西,比如函数的声明,结构体的声明,命名新的类型等等。 stdio.h 头文件,里
    的头像 发表于 12-18 10:28 872次阅读