- 为了方便书写及记忆,变量类型采用如下重定义
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long int uint32_t;
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed long int int32_t;
#define __IO volatile
- 常见类型的前缀
- 变量作用域的前缀
为了清晰的标识变量的作用域,减少发生命名冲突,应该在变量类型前缀之前再加上表示变量作用域的前缀,并在变量类型前缀和变量作用域前缀之间用下划线‘-’隔开。
具体的规则如下:
(1)对于全局变量(global variable),在其名称前加“g”和变量类型符号前缀。
uint32_t g_ulParaWord;
uint8_t g_ucByte;
(2)对于静态变量(static variable),在其名称前加“s”和变量类型符号前缀。
static uint32_t s_ulParaWord;
static uint8_t s_ucByte;
(3)函数内部等局部变量前不加作用域前缀。
(4)对于常量,当可能发生作用域和名字冲突问题时,以上几条规则对于常量同样适用。注意,虽然常量名的核心部分全部大写,但此时常量的前缀仍然用小写字母,以保持前缀的一致性。
- 对于结构体命名类型,表示类型的名字,所有名字以小写字母“tag”开头,之后每个英文单词的第一个字母大写(包括第一个单词的第一个字母),其他字母小写,结尾_T 标识。单词之间不使用下划线分隔,结构体变量以 t 开头。
/* 结构体命名类型名 */
typedef struct tagBillQuery_T
{
...
}BillQuery_T;
/* 结构体变量定义 */
BillQuery_T tBillQuery;
对于枚举定义全部采用大写,结尾_E 标识。
typedef enum
{
KB_F1 = 0, /* F1 键代码 */
KB_F2, /* F2 键代码 */
KB_F3 /* F3 键代码 */
}KEY_CODE_E;
5.常量、宏、模版的名字应该全部大写。如果这些名字由多个单词组成,则单词之间用下划线分隔。
宏指所有用宏形式定义的名字,包括常量类和函数类;常量也包括枚举中的常量成员。
#define LOG_BUF_SIZE 8000