Green 发表于 2021-8-3 17:40:43

转|常见命名规则


比较著名的命名规则首推匈牙利命名法,
这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;
前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。

骆驼(Camel)命名法近年来越来越流行,
在许多新的函数库和Java这样的平台下使用得当相多。
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写,余下的单词首字母大写。
例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。

帕斯卡(Pascal)命名法与骆驼命名法类似。
只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。
例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。

在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,
例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。

另一种流行的命名规则称为下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

本章所述的命名规则主要基于下划线命名法发展而来。


2 函数的命名

函数名使用下划线分割小写字母的方式命名:

设备名_操作名()

操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者
谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:

tic_init()
adc_is_busy()
uart_tx_char()

中断函数的命名直接使用 设备名_isr() 的形式命名,如:
timer2_isr()


3 变量的命名

变量的命名也采用下划线分割小写字母的方式命名。
命名应当准确,不引起歧义,且长度适中。如:
int length;
uint32 test_offset;

单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。

tmp常用做临时变量名。

局部静态变量,应加s_词冠(表示static),如:
static int s_lastw;

全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void (* g_capture_hook)(void);


4 常量及宏的命名

采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
防止模块间命名的重复。如:

#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

当然,看作接口的宏可以按照函数的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)


5 常用缩写词

原词 缩写

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            编码
environmentenv         环境
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      操作数
optimizationopt         最优
operator       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 stampts                时间戳
value         val            值
欢迎指出代码的不足之处,我很高兴你能指出我的错误。


文档来源:51CTO技术博客https://blog.51cto.com/rjgx/3255222
页: [1]
查看完整版本: 转|常见命名规则