单片机编程文件作用及规范

根据多年编写下位机的经验,发现如果函数多了,对于函数的整体架构的管理也就显得十分重要,如果排布好了会给人一种清清爽爽的感觉,但到底怎么排布函数,怎么把不同的函数放在对应的文件里呢?下面我们就来解决这个问题:

1、首先,我们会建立一个.c文件,这个文件存放着main函数,是整个工程的程序入口点,但这个文件最好保持清爽,因为这里的结构直接展示了函数的运行顺序,如果把子函数也放在这个文件里面,那main函数就会淹没在众多函数中,显得一团乱。理想状态是这样的:

wKiom1MbEyihp7VcAAOIPI_ESpg164.jpg

2、下面就得降到自定义函数的定义了,我们的自定义函数到底怎么管理才能在可以运行的情况下井井有条呢,即使有很多的子函数,也能清晰查看?我这里分为子函数头文件和子函数功能文件进行子函数的管理,下面讲讲子函数头文件的功能:

子函数头文件顾名思义就是存放头文件的文件,同时也用来存放一下子函数需要用到的变量定义和子函数定义。

注意:

①、非系统变量(如int\char等)需要加上extern,如:extern unsigned char con;表示此变量为外部变量,即在别的文件中使用的变量,当对应文件要使用到这些变量时,也同样需要进行定义,如:unsigned char con = 0;变量初始化必须在要用到这些变量的文件中定义。

②、系统变量,如单片机引脚定义(sbit red =  P1^2;),不能加extern,否则编译会出错,也正因为这样,它只能出现一次,不管在头文件还是在功能文件中都可以。

③、需要标注好

#ifndef _read_card_H
#define _read_card_H
.
.
.
#end

④、对于函数的申明不需要添加extern。

例图如下:

wKiom1MbF1TSmcl1AAjk1hLD9kU567.jpg

3、功能函数由于要用到头文件,所以要把包含所有头文件的文件给当作它的直接上级头文件。

wKioL1MbF9mRItcQAAZ9Ybt94CQ575.jpg

你可能感兴趣的:(程序,工程,文件规范,单片机编程)