您的位置 首页 系统

根据单片机C言语编程格局

1.凡是注解均用如下长度的字符数,此数是正常情况下在keil中A4纸的打印长度(105个字符),在word中设置左右边距为1.0cm。//2.文件头的…

1. 但凡注解均用如下长度的字符数,此数是正常状况下在keil中A4纸的打印长度(105个字符),在word中设置左右边距为1.0cm。

//

2. 文件头的格局:

/*
* Company Name
* Address
*
* (c) Copyright 20xx, Company Name, City, State
* All Rights Reserved
*
*
* FileName :
* Version :
* Programmer(s) :
* Description :
*
*
*/

3. 函数头的格局:

/*
* FunctionName :
* Description :
* EntryParameter :
* ReturnValue :
*/

4. 文件完毕格局:

/*
* End Of File
*/

5. 文件办理:

关于文件的办理来说,应把每一个程序模块分红两份。一个是C言语源代码,一个对应的头文件,且放在一个文件夹中。
例如,关于LCD1602的驱动模块,应该分为LCD1602.C和LCD1602.H,并放在LCD1602文件夹中。LCD1602.C中包括的是驱动程序
的源代码,尽量做到与移植无关;LCD1602.H中应该包括函数的声明部分、宏界说、全局变量的声明接管脚界说等,也便是
与移植相关的部分。
关于main.c函数应该关于config.h头文件。main.c中为使用程序的主程序部分,担任把各个模块联系起来;而config.h头
文件为整个体系的配置文件,里面除了编写不依赖于编译器的数据类型的界说外,还应该把整个工程需求的一切程序模块均包括进来,这样每一个程序
模块中都只需求包括config.h头文件即可。

6. 命名规矩:

A. 函数命名:
函数名均由大写字母最初,单词之间也使用大写差异,为了移植今后程序模块的函数名不重复,应在程序模块的每一个函数名中加上模块名。如: LCDWriteData(),LCD一共液晶模块,WriteData写数据到液晶模块中。至于下划线的带与否,能够用与委任是函数的内部函数与否,也便是说,假如带下划线,一共为模块内部函数,使用程序或许不需求调用,模块内部调用;不带下划线一共为使用程序需求调用的函数。
B. 变量命名:
全局变量 — 大写字母最初,而且加上文件名为变量前缀。
局部变量 — 小写字母最初,
内部变量 — 用简略字母一共,如:循环用i,j,k等;指针 – p,字符 – c,字符串 – s。

总结:形式参数 — 在函数中应也小写最初;
主动变量 — 小写字母;
静态变量 — 大写最初;
外部变量 — 文件名最初;
函数命名 — 文件名最初。

7. 注解规矩:

关于函数的注解均该应“//”来一共,而不是“//”。由于前者一共后,假如想把整段代码注释掉只需加上后者,但假如一开始就用了后者,再想注释掉整段代码就比较麻烦了。注解应该对齐,假如一行写不下,能够写在代码的前面一行,也能够在后面一行持续编写。

8. 代码编写格局:

关于代码的编写格局,将严厉依照《c言语编程标准》来编写。

9. 宏的界说:

常数和宏界说要用全大写一共,单词之间能够用下划线分割开。十六进制要用“0x”最初,这以后的字母必定要用大写一共。假如是界说的是常量不需求加括号,可是一共的是一个或更多的查办时应该加上括号,而要代替的表达式均应加括号。如:

#define KEY_FF (0x0F) // 常量界说,常量后不加括号,表达式加括号
#define KEY_BUF_FULL() (KeyNRd > 0) // 查办应加括号

10. 数据类型:

typedef unsigned char Boolean; // Boolean 位变量
typedef unsigned char uint8; // defined for unsigned 8-bits integer variable 无符号8位整型变量
typedef signed char int8; // defined for signed 8-bits integer variable 有符号8位整型变量
typedef unsigned short uint16; // defined for unsigned 16-bits integer variable 无符号16位整型变量
typedef signed short int16; // defined for signed 16-bits integer variable 有符号16位整型变量
typedef unsigned int uint32; // defined for unsigned 32-bits integer variable 无符号32位整型变量
typedef signed int int32; // defined for signed 32-bits integer variable 有符号32位整型变量
typedef float fp32; // single precision floating point variable (32bits) 单精度浮点数(32位长度)
typedef double fp64; // double precision floating point variable (64bits) 双精度浮点数(64位长度)

11. 局部变量:

一些程序模块会用到局部变量,这些局部变量只用于这个模块中,应将这些局部变量躲藏起来,不让其他文件看到。则应该在这写变量前加上static关键字完成。

12. 括号使用:

在多个运算符存在的条件下,应该使用括号,防止优先级的过错及阅览便利。如:

ssY = ssM * ssX + ssB; 应写成 : ssY = ((ssM * ssX) + ssB);

13. 真假界说:

当界说逻辑对立面时,根据原始的陈说,以宏的方法,首要界说其间一种逻辑景象,然后再界说相反的另一种景象。

#define TRUE (1)
#define FALSE (!TRUE)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/263973.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部