1 常見命名規則
比較著名的命名規則首推匈牙利命名法,
這種命名方法是由Microsoft程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。
其主要思想是“在變量和函數名中加入前綴以增進人們(men) 對程序的理解”。
匈牙利命名法關(guan) 鍵是:標識符的名字以一個(ge) 或者多個(ge) 小寫(xie) 字母開頭作為(wei) 前綴;
前綴之後的是首字母大寫(xie) 的一個(ge) 單詞或多個(ge) 單詞組合,該單詞要指明變量的用途。
例如:lpszStr, 表示指向一個(ge) 以'\0'結尾的字符串(sz)的長指針(lp)變量。
駱駝(Camel)命名法近年來越來越流行,
在許多新的函數庫和Java這樣的平台下使用得當相多。
駱駝命名法,正如它的名稱所表示的那樣,指的是混合使用大小寫(xie) 字母來構成標識符的名字。
其中第一個(ge) 單詞首字母小寫(xie) ,餘(yu) 下的單詞首字母大寫(xie) 。
例如:printEmployeePaychecks(),函數名中每一個(ge) 邏輯斷點都有一個(ge) 大寫(xie) 字母來標記。
帕斯卡(Pascal)命名法與(yu) 駱駝命名法類似。
隻不過駱駝命名法是第一個(ge) 單詞首字母小寫(xie) ,而帕斯卡命名法則是第一個(ge) 單詞首字母大寫(xie) 。
例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和駱駝命名法居多。
事實上,很多程序設計者在實際命名時會(hui) 將駱駝命名法和帕斯卡結合使用,
例如變量名采用駱駝命名法,而函數采用帕斯卡命名法。
另一種流行的命名規則稱為(wei) 下劃線命名法。
下劃線法是隨著C語言的出現流行起來的,在UNIX/LIUNX這樣的環境,以及GNU代碼中使用非常普遍。
本章所述的命名規則主要基於(yu) 下劃線命名法發展而來。
2 函數的命名
函數名使用下劃線分割小寫(xie) 字母的方式命名:
設備名_操作名()
操作名一般采用:謂語(此時設備名作為(wei) 賓語或者標明操作所屬的模塊)或者
謂語+賓語/表語(此時設備名作為(wei) 主語或者標明操作所屬的模塊) 等形式,如:
tic_init()
adc_is_busy()
uart_tx_char()
中斷函數的命名直接使用 設備名_isr() 的形式命名,如:
timer2_isr()
3 變量的命名
變量的命名也采用下劃線分割小寫(xie) 字母的方式命名。
命名應當準確,不引起歧義(yi) ,且長度適中。如:
int length;
uint32 test_offset;
單字符的名字也是常用的,如i, j, k等,它們(men) 通常可用作函數內(nei) 的局部變量。
tmp常用做臨(lin) 時變量名。
局部靜態變量,應加s_詞冠(表示static),如:
static int s_lastw;
全局變量(尤其是供外部訪問的全局變量),應加g_詞冠(表示global),如:
void (* g_capture_hook)(void);
4 常量及宏的命名
采用下劃線分割大寫(xie) 字母的方式命名,一般應以設備名作為(wei) 前綴,
防止模塊間命名的重複。如:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
當然,看作接口的宏可以按照函數的命名方法命名,例如:
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
5 常用縮寫(xie) 詞
原詞 縮寫(xie)
addition add 加
subtraction sub 減
multiplication mul 乘法
division div 除法
answer ans 響應、回答
array arr 數組、集合
average avg 平均
buffer buf或buff 緩衝(chong) 區
capture cap或capt 捕獲
check chk 檢查
count cnt 計數器
column col 列
control ctrl 控製
decode dec 解碼、譯碼
define def 定義(yi)
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 內(nei) 存
middle mid 中值
make mk 製造、形成
message msg 消息
number num 數量、編號
operand opnd 操作數
optimization opt 最優(you)
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 臨(lin) 時
total tot 全部的
time stamp ts 時間戳
value val 值