您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

单片机C语言编程,心得都在这里了

时间:2020-05-13 10:19:41  来源:  作者:

这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和编程规范有很多不懂的地方,有些是自己以前的编程习惯不好,有些就是基础知识不扎实的表现,所以总结出来。

一、.H文件与.C文件的关系:

迄今为止,写过的程序都是一些很简单的程序,从来没有想到要自己写.H文件,也不知道.H文件到底什么用,与.C文件什么关系。只是最近写键盘程序,参考别人的程序时,发现别人写的严格的程序都带有一个“KEY.H”,里面定义了.C文件里用到的自己写的函数,如Keyhit()、Keyscan()等。

经过查找资料得知,.H文件就是头文件,估计就是Head的意思吧,这是规范程序结构化设计的需要,既可以实现大型程序的模块化,又可以实现根各模块的连接调试。

1、.H文件介绍:

在单片机C程序设计中,项目一般按功能模块化进行结构化设计。将一个项目划分为多个功能,每个功能的相关程序放在一个C程序文档中,称之为一个模块,对应的文件名即为模块名。一个模块通常由两个文档组成,一个为头文件*.h,对模块中的数据结构和函数原型进行描述;另一个则为C文件*.c ,对数据实例或对象定义,以及函数算法具体实现。

2、.H文件的作用

作为项目设计,除了对项目总体功能进行详细描述外,就是对每个模块进行详细定义,也就是给出所有模块的头文件。通常H头文件要定义模块中各函数的功能,以及输入和输出参数的要求。模块的具体实现,由项目组成根据H文件进行设计、编程、调试完成。为了保密和安全,模块实现后以可连接文件OBJ、或库文件LIB的方式提供给项目其他成员使用。由于不用提供源程序文档,一方面可以公开发行,保证开发人员的所有权;另一方面可以防止别人有意或无意修改产生非一致性,造成版本混乱。所以H头文件是项目的详细设计和团队工作划分的依据,也是对模块进行测试的功能说明。要引用模块内的数据或算法,只要用包含include指定模块H头文件即可。

3、.H文件的基本组成

/*如下为键盘驱动的头文档*/

#ifndef _KEY_H_ //防重复引用,如果没有定义过_KEY_H_,则编译下句

#define _KEY_H_ //此符号唯一, 表示只要引用过一次,即#i nclude,则定义符号_KEY_H_

/////////////////////////////////////////////////////////////////

char keyhit( void ); //击键否

unsigned char Keyscan( void ); //取键值

/////////////////////////////////////////////////////////////////

#endif

 

单片机C语言编程,心得都在这里了

 



Tags:C语言   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
在go语言中使用viper之类的库很方便的处理yaml配置文件,但是在c语言中就比较麻烦,经过一番思索和借助强大的github,发现了一个libyaml c库,但是网上的例子都比较麻烦,而且比较繁...【详细内容】
2022-07-07  Tags: C语言  点击:(19)  评论:(0)  加入收藏
今天给大家分享一篇C语言编码规范,可以从源头上规避掉很多bug,希望能对大家有所帮助。 01 最重要的规则编写代码时最重要的一条规则是:检查周围的代码并尝试模仿它。 作为维护...【详细内容】
2022-07-04  Tags: C语言  点击:(22)  评论:(0)  加入收藏
什么编程语言最好?这是个能让各路程序员吵翻天的话题,每种语言都有自己的拥趸,全球现在找出三五十种编程语言都不是问题,热门的至少也有20种,先不说这些语言好用与否,它们的性能也...【详细内容】
2022-07-01  Tags: C语言  点击:(29)  评论:(0)  加入收藏
C语言中没有参数默认值的概念,但其实可以利用宏来模拟参数的默认值;我们之前介绍过可变参数宏与逗号运算符,将两者相结合的话可以定义出以下形式的宏:#define func(...) __fun...【详细内容】
2022-06-04  Tags: C语言  点击:(66)  评论:(0)  加入收藏
请大家看下面的题目,应该选择哪个答案呢?选择题 1首先,此类题目每年的考试都会出现,也就是说,标识符这个知识点非常重要。此类题目一般都是送分题 ,只要掌握了标识符的命名规则,这...【详细内容】
2022-05-20  Tags: C语言  点击:(74)  评论:(0)  加入收藏
C语言是在B语言的基础上发展起来的。 C的根源是ALGOL 60,1960年ALGOL 60是一种面向问题的高级语言,离硬件比较远,1963年的时候推出了CPL语言,CPL在ALGOL 60的基础上更接近硬件一...【详细内容】
2022-05-16  Tags: C语言  点击:(62)  评论:(0)  加入收藏
因为个人爱好,平时在家学习单片机开发,没事写写程序,不知道怎么地,突然就想用C模仿C++写程序,于是乎,弄了几个宏定义。。。首先,为了在样子上长得像,需要这样一个宏定义,如下: 光这样...【详细内容】
2022-05-12  Tags: C语言  点击:(60)  评论:(0)  加入收藏
冒泡排序是所有排序算法中最简单、最易实现的算法,有时也称为起泡排序算法。使用冒泡排序算法对 n 个数据进行排序,实现思路是:从待排序序列中找出一个最大值或最小值,这样的操...【详细内容】
2022-05-06  Tags: C语言  点击:(112)  评论:(0)  加入收藏
前言内存四区,分别是全局区(静态区),代码区,栈区,堆区.从内存分配来看,可以分为静态分配和动态分配.静态分配内存分配完成之后,不会释放,直到程序结束 静态区,分配之后,不会释...【详细内容】
2022-03-30  Tags: C语言  点击:(84)  评论:(0)  加入收藏
c语言必背专业英语词汇大全要想学好c语言,对于c语言方面的专业英语词汇的学习非常重要,那么现在就一起来学习一些必背的`c语言专业英语词汇吧,希望能够帮到大家!c语言专业英语...【详细内容】
2022-03-24  Tags: C语言  点击:(104)  评论:(0)  加入收藏
▌简易百科推荐
在go语言中使用viper之类的库很方便的处理yaml配置文件,但是在c语言中就比较麻烦,经过一番思索和借助强大的github,发现了一个libyaml c库,但是网上的例子都比较麻烦,而且比较繁...【详细内容】
2022-07-07  全栈搬砖家    Tags:yaml   点击:(19)  评论:(0)  加入收藏
目前数据的种类非常多,每种数据都支持sql语句,但是大家发现没有每种数据的SQL都有自己的语法特性,都是SQL语句都没有一个特定的语法标准,导致开发人员在开发的过程中无法任意选...【详细内容】
2022-07-05  海椰人    Tags:SQL语句   点击:(21)  评论:(0)  加入收藏
今天给大家分享一篇C语言编码规范,可以从源头上规避掉很多bug,希望能对大家有所帮助。 01 最重要的规则编写代码时最重要的一条规则是:检查周围的代码并尝试模仿它。 作为维护...【详细内容】
2022-07-04  嵌入式Linux    Tags:C语言   点击:(22)  评论:(0)  加入收藏
什么编程语言最好?这是个能让各路程序员吵翻天的话题,每种语言都有自己的拥趸,全球现在找出三五十种编程语言都不是问题,热门的至少也有20种,先不说这些语言好用与否,它们的性能也...【详细内容】
2022-07-01  HAIFEIX    Tags:编程语言   点击:(29)  评论:(0)  加入收藏
描述使用C#.Net开发的Windows远程控制管理系统SiMay,底层基于IOCP的异步通信模型,实时监控海量客户端,目前功能已实现:逐行扫描远程桌面协助、经典的文件管理、实时远程语音、实...【详细内容】
2022-06-30  IT微部落    Tags:C#   点击:(36)  评论:(0)  加入收藏
1.如何远程调试服务器的windows 服务-远程调试 远程服务调试前提:要确保你的代码和服务在同一个域下才可以 1)首先要在你vs的根目录下找到 Remote Debugger 文件夹,复制到带有...【详细内容】
2022-06-16  中年农码工    Tags:C#   点击:(57)  评论:(0)  加入收藏
描述一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。同时支持多种语言,C#、golang、java、javascript、python参数...【详细内容】
2022-06-14  IT微部落    Tags:C#   点击:(51)  评论:(0)  加入收藏
讲故事前几天看公司一个新项目使用了FluentValidation,大家都知道FluentValidation是一个非常强大的用于构建强类型验证规则的 .NET 框架,帮程序员解决了繁琐的校验问题,用起来...【详细内容】
2022-06-08  黑哥聊dotNet    Tags:FluentValidation   点击:(53)  评论:(0)  加入收藏
C语言中没有参数默认值的概念,但其实可以利用宏来模拟参数的默认值;我们之前介绍过可变参数宏与逗号运算符,将两者相结合的话可以定义出以下形式的宏:#define func(...) __fun...【详细内容】
2022-06-04  嵌入式ICU    Tags:C语言   点击:(66)  评论:(0)  加入收藏
请大家看下面的题目,应该选择哪个答案呢?选择题 1首先,此类题目每年的考试都会出现,也就是说,标识符这个知识点非常重要。此类题目一般都是送分题 ,只要掌握了标识符的命名规则,这...【详细内容】
2022-05-20  正直的苏离    Tags:标识符   点击:(74)  评论:(0)  加入收藏
站内最新
站内热门
站内头条