当前位置:网站首页>成都控制板设计提供_算是详细了_单片机程序头文件的定义、编写及引用介绍
成都控制板设计提供_算是详细了_单片机程序头文件的定义、编写及引用介绍
2022-04-23 14:27:00 【u010755676】
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必须成对使用。 |
#define __ XXX _H__ |
定义XXX.H |
#include <xxx.h> |
载入相关的系统头文件xxx.h |
#include “yyy.h” |
载入相关的自定义头文件yyy.h |
sbit x=p; |
系统位定义。一般用于定义引脚,用x代替引脚p。 |
#define X Y |
符号变量定义,X就表示Y值。Y一般为具体数值。X和Y之间有空格 |
void XX(); |
子程序预定义。在其他程序里载入了这个头文件后,就能调用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。
本节完,精彩待续。
版权声明
本文为[u010755676]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u010755676/article/details/124356693
边栏推荐
- C语言p2选择分支语句详解
- 金九银十,入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
- source insight via samba
- Qt实战:云曦聊天室篇
- Tongxin UOS php7 2.3 upgrade to php7.0 two point two four
- flannel 原理 之 子网划分
- AT89C51单片机的数字电压表开发,量程0~5V,proteus仿真,原理图PCB和C程序等
- Usage of BC
- AT89C51 MCU digital voltmeter development, measuring range 0 ~ 5V, proteus simulation, schematic diagram, PCB and C program, etc
- Docker (V) MySQL installation
猜你喜欢
ASEMI整流模块MDQ100-16在智能开关电源中的作用
AT89C52 MCU frequency meter (1Hz ~ 20MHz) design, LCD1602 display, including simulation, schematic diagram, PCB and code, etc
51单片机的花卉、农田自动浇水灌溉系统开发,Proteus仿真,原理图和C代码
8.2 文本预处理
QT actual combat: Yunxi chat room
如何5分钟上手使用OCR
Matlab Simulink modeling and design of single-phase AC-AC frequency converter, with MATLAB simulation, PPT and papers
Proteus simulation design of four storey and eight storey elevator control system, 51 single chip microcomputer, with simulation and keil c code
TLC5615 based multi-channel adjustable CNC DC regulated power supply, 51 single chip microcomputer, including proteus simulation and C code
Notes on Visio drawing topology
随机推荐
Docker篇 (五) MySQL的安装
关于在vs中使用scanf不安全的问题
DS1302的电子万年历_51单片机,年月日、星期、时分秒、农历和温度,带闹钟,全套资料
L'externalisation a duré quatre ans.
Upgrade of openssh and modification of version number
Some little records~
机器学习之逻辑回归(Logistic Regression)原理讲解和实例应用,果断收藏
一款不错的工具:aardio
Proteus simulation design of DC adjustable regulated power supply (with simulation + paper and other data)
爬虫练习题(一)
AT89C52 MCU frequency meter (1Hz ~ 20MHz) design, LCD1602 display, including simulation, schematic diagram, PCB and code, etc
The initial C language framework is suitable for review and preliminary understanding
bc的用法
MCU function signal generator, output four kinds of waveforms, adjustable frequency, schematic diagram, simulation and C program
ArrayList集合基本使用
Flop effect
XX project structure notes
C语言p2选择分支语句详解
Qt实战:云曦聊天室篇
Golang 对分片 append 是否会共享数据