秦皇岛 免费建网站,门户网站建设哪专业,免费购物网站源码,烟台优化网站公司哪家好1. 源文件和头文件放同一目录bsp文件夹顺序文件注释防重复设置#include#defineenum类型声明、定义 包括struct union typedef全局变量声明文件级变量声明全局或文件级函数声明函数实现。按函数声明顺序文件尾注释。/**************END FILE**************/引用头文件不用绝对路…1. 源文件和头文件放同一目录bsp文件夹顺序文件注释防重复设置#include#defineenum类型声明、定义 包括struct union typedef全局变量声明文件级变量声明全局或文件级函数声明函数实现。按函数声明顺序文件尾注释。/**************END FILE**************/引用头文件不用绝对路径头文件只存放声明不存放定义避免重复。缩进4变量与语句空一行不同功能空一行长表达式换行书写
if((ucParam1 0) (ucParam2 0)
||(ucParam0) {
} 、 、 、%、 、 、、^加空格
!、~、、--、- . 不加空格
函数名命规则
前缀模块明、模块名小写与函数名区分。
uartReceive();
函数形参已下划线开头与普通变量区分。
uint32_t uartConvUartBaud(uint32_t _ulBaud)
一个函数实现一个功能。
函数名准确描述避免无意义含义混淆的命名。
检查函数输入有效性 assert()验证。
防止函数参数作为工作变量。
避免五个参数函数。不用的去掉。
不使用技巧语句
变量命名
uint8_t uc ucSum
uint16_t us usParaWord
uint32_t ul ulParaWord int8_t c cSum
int16_t s sParaWord
int32_t l lParaWord int8_t * cp cpWrite
int16_t * sp spWrite
int32_t * lp slWrite
int8_t 数组 ca caNum[3]
int16_t 数组 sa saNum[3]
int32_t 数组 la laNum[3]
结构体 t tParam
uint8_t * ucp ucpWrite
uint16_t * usp uspWrite
uint32_t * ulp uslWrite
uint8_t 数组 uca ucaNum[3]
uint16_t 数组 usa usaNum[3]
uint32_t 数组 ula ulaNum[3]
变量名作用域。
在变量类型前缀加变量作用域
全局变量 g
uint32_t g_ulParaWord
uint8_t g_ucByte
静态变量s
static uint32_t s_ulPara
函数内部局部变量不加作用域前缀
结构体命名 tag开头之后首字母大写。结尾以_T标识。单词间不用下划线分开
typedef struct tagBillQuery_T
{
}BillQuery_T;
结构体变量定义
BillQuery_T tBillQuery
枚举定义全部采用大写结尾_E标识,
typedef enum
{ F10, F2, F3
}KEY_CODE_E
宏定义多个单词用_分开,并注释。
#define LOG_BUF_SIZE 8000