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)