首页  /  单片机教程  /  多文件编写  /  

多文件编写

点击打开在线编译器,边学边练

为了与主流的编程素养接轨,我们本章讲解如何书写简洁并且高效率的代码以及首次运用多文件编程。多文件的作用是方便编写大程序时更加的模块化,那么至于原理,头文件包含关系等这些知识还需读者自己再多多补补C语言知识了。

 

1.多文件的优势

运用多文件编程是为了使我们教程无需每次都贴出相同功能的代码,像第一阶段最后的一个例程,已经有很多代码完全可以前往以前的例程里复制即可,笔者也是考虑到一开始我们都是从单个“.c”文件入门单片机编程,所以之前的例程都是提供完整的代码给大家方便复制移植到自己的单个“.c”工程文件中。

可后期的例程里我们的代码量越来越大,显然全部给出就不合适了,所以我们把经常使用的功能模块代码封装起来放在另一个“.c”文件里提供给我们调用,这个“.c”文件命名为“function.c”。以后我们提供的代码就是“main.c”的内容,这样教程供给的代码数量就会精简一些。

 

2.typedef

第一阶段里我们的代码有一部分可以再简化的,比如unsigned int的定义,我们用“typedef unsigned int u16;”声明,u16就是用一个更简洁的名字来取代“unsigned int”去定义16位的变量。

用“typedef unsigned char u8;”的话,u8就是用来定义8位的变量,或者像之前定义的数组也可以像这样

“u8 LEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};”去定义。

那么有时需要定义32位的变量,就用“typedef unsigned long u32;”即可。

虽然#define与typedef的作用有点意思相近,但“#define u16 unsigned int”是不严谨的编写习惯,不建议这样使用,原因大家可上网了解。

 

3.准备工作

首次讲解多文件编程,这里大家跟着步骤来做。

新建一个“.c”文件,命名为“function.c”后保存。

6.01.png 


再新建一个“function.h”

6.02.png


双击“Source Group 1”添加文件进去

6.03.png


在“function.h”先添加如下内容:

#ifndef __FUNCTION_H__
#define __FUNCTION_H__
 
typedef unsigned char  u8;//对数据类型进行声明定义
typedef unsigned int  u16;
typedef unsigned long u32;
 
 
#endif

6.04.png

后续工作我们下一讲再讲解。


本文固定URL:https://www.dotcpp.com/course/357

下一课:模块初始化
第一章 单片机入门
第二章 LED
第三章 蜂鸣器
第四章 数码管
第五章 独立按键
第六章 多文件编程
第七章 外部中断
第八章 定时器
第九章 舵机与超声波模块
第十章 串口通信
第十一章 1602液晶屏
第十二章 IIC通信
第十三章 红外遥控与温度传感器
第十四章 AD与DA
第十五章 混合例程
第十六章 完结
Dotcpp在线编译      (登录可减少运行等待时间)