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