标题: 算是详细了!单片机程序头文件的定义、编写及引用介绍 [打印本页]
作者: yonko 时间: 2022-4-22 22:50
标题: 算是详细了!单片机程序头文件的定义、编写及引用介绍
成都控制板设计提供_算是详细了!单片机程序头文件的定义、编写及引用介绍
SO技术分享之31
初听迷茫不必慌,日出雾散路明亮。
本文介绍头文件的定义、编写、保存及引用等方面的内容,包括了一般的格式要求、例程等。
什么是头文件?
头文件在C语言程序开发中一般来说是必需的,一般在C程序的开头就得引用头文件。
头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
为什么要用头文件?
如果没有头文件,那么定义只有就在C文件中进行,有几个坏处:
->不便于阅读。定义和功能代码放在一起,可读性变差;
->重复劳动,增加程序量。在各个C文件中,只要用到了就得重新定义一下,重复的代码会变多等。
如需项目开发定制,可Q-Q: 2531二六3726。
头文件编写的一般格式要求是怎样?
很多东西都有格式的,按照格式来做一般不会出错。图1为头文件定义的一般结构。
开头的#ifndef和最后的#endif需要成对出现,它的含义为假如没有定义某文件的话,那么执行某些操作。在#ifndef和#endif之间可以编写头文件定义的代码,如载入其他头文件、引脚定义、子程序预定义等的。
下表给出了图1中部分代码的解释。
表 1 图1的要点解释
#ifndef __XXX_H__ … #endif | 含义为假如没有定义XXX.H,那么就执行某些操作。 If和endif必须成对使用。 |
| |
| |
| |
| |
| 符号变量定义,X就表示Y值。Y一般为具体数值。X和Y之间有空格 |
| 子程序预定义。在其他程序里载入了这个头文件后,就能调用XX子程序。预定义后在对应的C文件里还得编写具体的子程序代码。 |
一个头文件编写的例子
有个例子,会有更加生动的理解。图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。
本节完,精彩待续。
作者: lzzasd 时间: 2022-4-23 11:09
编写功能多的程序 .h文件是必须的
作者: 1109 时间: 2022-4-23 14:17
对于不懂程序的我来说,受益匪浅;谢谢楼主!
作者: 南书DB 时间: 2022-4-26 17:37
程序分块写可读性会好很多,学到了学到了
作者: chanmk 时间: 2022-4-26 19:37
假如没定义,就定义它,不是太明白
作者: hy47566398 时间: 2022-4-27 18:21
本帖最后由 hy47566398 于 2022-4-27 18:34 编辑
#ifndef __XXX_H__
这一句只是程序编译时判断是否定义了 __XXX_H__ 宏
也就是程序此时是否程序执行过了 #define __ XXX _H__ , 以防头文件被重复包含定义了 __ XXX _H__ 宏,表示程序执了这个头文件代码,程序跳到#endif处执行
如果没有定义这个宏,执行#ifndef后的代码
__ XXX _H__ 这个宏名称可以随便写,跟文件名一点关系都没有
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |