为了与主流的编程素养接轨,我们本章讲解如何书写简洁并且高效率的代码以及首次运用多文件编程。多文件的作用是方便编写大程序时更加的模块化,那么至于原理,头文件包含关系等这些知识还需读者自己再多多补补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”后保存。
再新建一个“function.h”
双击“Source Group 1”添加文件进去
在“function.h”先添加如下内容:
#ifndef __FUNCTION_H__ #define __FUNCTION_H__ typedef unsigned char u8;//对数据类型进行声明定义 typedef unsigned int u16; typedef unsigned long u32; #endif
后续工作我们下一讲再讲解。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程