C语言常见命名规范
目录
文章转载:https://www.cnblogs.com/liujiahi/archive/2011/09/16/2196348.html
一、常见命名规则
1、匈牙利命名法
这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:lpszStr,表示指向一个以'0'结尾的字符串(sz)的长指针(lp)变量。
2、骆驼(Camel)命名法
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。
3、帕斯卡(Pascal)命名法。
帕斯卡(Pascal)命名法和骆驼命名法相似,但帕斯卡命名法则是第一个单词首字母大写。
例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。
4、下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
二、函数的命名
函数名使用下划线分割小写字母的方式命名:设备名_操作名() 。
操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式。
例如:tic_init() adc_is_busy() uart_tx_char()
中断函数的命名直接使用 设备名_isr() 的形式命名。
例如:timer2_isr()
三、变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。
例如:int length; uint32 test_offset;
单字符的名字也是常用的。
例如i, j, k等,它们通常可用作函数内的局部变量。
tmp常用做临时变量名。局部静态变量,应加s_词冠(表示static)。
例如:static int s_lastw;
全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global)。
例如:void (* g_capture_hook)(void);
四、常量及宏的命名
采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,防止模块间命名的重复。
例如:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
当然,看作接口的宏可以按照函数的命名方法命名。
例如:
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
五、常用缩写词
原词 | 缩写 | 含义 |
---|---|---|
addition | add | 加 |
subtraction | sub | 减 |
multiplication | mul | 乘法 |
division | div | 除法 |
answer | ans | 响应、回答 |
array | arr | 数组、集合 |
average | avg | 平均 |
buffer | buf或buff | 缓冲区 |
capture | cap或capt | 捕获 |
check | chk | 检查 |
count | cnt | 计数器 |
column | col | 列 |
control | ctrl | 控制 |
decode | dec | 解码、译码 |
define | def | 定义 |
delete | del | 删除 |
destination | dst或dest | 目的 |
display | disp | 显示 |
encode | enc | 编码 |
environment | env | 环境 |
error | err | 错误 |
float | flt | 浮动、浮点 |
frequency | freq | 频率 |
header | hdr | 开始、开头 |
index | idx | 索引、指示、 |
image | img | 影像、镜像 |
increment | inc | 增加、增量 |
initalize | init | 初始化 |
iteration | itr | 循环、迭代 |
length | len | 长度 |
memory | mem | 内存 |
middle | mid | 中值 |
make | mk | 制造、形成 |
message | msg | 消息 |
number | num | 数量、编号 |
operand | opnd | 操作数 |
optimization | opt | 最优 |
operatorv | optr | 操作 |
packet | pkt | 息包 |
positon | pos | 位置 |
previous | pre或prev | 以前的 |
pointer | ptr | 指针 |
record | rcd | 记录 |
receive | recv | 收到、接收 |
result | res | 结果 |
return | ret | 返回 |
source | src | 源头 |
stack | stk | 栈 |
string | str | 字符串 |
table | tab | 表 |
temporary | tmp或temp | 临时 |
total | tot | 全部的 |
time stamp | ts | 时间戳 |
value | val | 值 |