程式設計的命名規則,我第一反應就會想到匈牙利命名法。匈牙利命名法我都不想多說,因為網上的文章一大把,大家自己去google搜尋。但是為了方便起見,我還是在這裡簡單的介紹一下:
匈牙利命名法通過在變數名前面加上相應的小寫字母的符號標識作為字首,標識出變數的作用域,型別等。
這些符號可以多個同時使用,順序是
一、先m_(成員變數)或者是g_(全域性變數)
二、就是指標,通常以p來表示
三、然後是簡單資料型別
四、再是其他
例如:m_lpszstr, 表示 指向乙個以 '/0' 字元結尾的字串的長指標成員變數。
匈牙利命名法關鍵是:
識別符號的名字以乙個或者多個小寫字母開頭作為字首;
字首之後的是首字母大寫的乙個單詞或多個單詞組合,該單詞要指明變數的用途。
字首型別
a陣列 (array)
b布林值 (boolean)
by位元組 (byte) == 8 bit
c有符號字元 (char)
cb無符號字元 (char byte,沒有多少人用)
cr顏色參考值 (colorref)
cx,cy
座標差(長度 shortint)
dw雙字 (double word) == 4 byte == 4 * 8 bit
fn函式(function)
h控制代碼(handle)
i整型(int)
l長整型 (long int)
lp長指標(long pointer)
m_類的成員(member of a class)
n
短整型 (short int)
np近指標(near pointer)
p指標(pointer)
s字串型(string)
sz以字元'/0'結尾的字串 (string with zero end)
w字(word) == 2 byte == 2 * 8 bit
但是在任何情況下,都硬性規定使用匈牙利命名法是迂腐的。尤其是 unix 程式設計,在使用沒有變數名、關鍵字自動補齊功能的編輯器,如 vi 下,去敲入大小寫混合的變數名是痛苦的。
其實只要注意兩個原則:
1) 含義清晰,不易混淆;
2) 不和其它模組、系統api的命名空間相衝突即可。
1. 有意識的為變數名、巨集名加上本模組的關鍵字,就不至於和其它模組、系統api的命名空間相衝突;
例如: 巨集的名稱過短,如:"debug" 或 "_debug",很可能和別的模組,系統模組相衝突;
2. 區域性變數尤其是迴圈變數外,使用約定俗成的 i,j,k ,沒有問題;
3. 巨集、常量、列舉enum,全部用大寫字母;
4. 全域性變數加上字首 "g",後面跟上首字母大寫的單詞;
全域性變數嗎,費事一點可以諒解
mfc命名規則
windows型別
樣本變數
mfc類
樣本變數
hwnd
hwnd;
cwnd*
pwnd;
hdlg
hdlg;
cdialog*
pdlg;
hdc
hdc;
cdc*
pdc;
hgdiobj
hgdiobj;
cgdiobject*
pgdiobj;
hpen
hpen;
cpen*
ppen;
hbrush
hbrush;
cbrush*
pbrush;
hfont
hfont;
cfont*
pfont;
hbitmap
hbitmap;
cbitmap*
pbitmap;
hpalette
hpaltte;
cpalette*
ppalette;
hrgn
hrgn;
crgn*
prgn;
hmenu
hmenu;
cmenu*
pmenu;
hwnd
hctl;
cstate*
pstate;
hwnd
hctl;
cbutton*
pbutton;
hwnd
hctl;
cedit*
pedit;
hwnd
hctl;
clistbox*
plistbox;
hwnd
hctl;
ccombobox*
pcombobox;
hwnd
hctl;
cscrollbar*
pscrollbar;
hsz
hszstr;
cstring
pstr;
point pt
; cpoint pt
; size
size;
csize
size;
rect
rect;
crect
rect;
還有一點想說明一下:
常量和巨集定義必須全部以大寫字母來撰寫,中間可根據意義的連續性用下劃線連線,每一條定義的右側必須有一簡單的注釋,說明其作用;
下面是vc資源名字定義格式:
選單:idm_xx //m:menu
位圖:idb_xx //b:bitmap
對話方塊:idd_xx //d: dialog
字串:ids_xx //s:string
icon:idi_xx //i:icon
按鈕控制項
: idc_btn_xx //btn:button
編輯控制項
: idc_edt_xx //edt:editbox
列表控制項: idc_lst_xx //lst: listctrl
樹表控制項: idc_tre_xx //tre:treectrl
富文字控制項: idc_rch_xx //rch:richedit
靜態本控制項: idc_stt_xx //stt:statictext
組合框控制項: idc_cmb_xx //cmb:combobox
滾動條控制項: idc_scr_xx //scr:scrollbar
滑動條控制項: idc_sld_xx //sld:slider
多選項控制項: idc_chk_xx //chk:checkbox
單選項控制項: idc_rdb_xx //rdb:radiobutton
程式設計命名規則
在進行第一次收費系統開發時,我沒有注意到命名規則的問題。能用英語的用英語,不知道英語的用拼音,唯一慶幸的是有點常識,沒有用漢字。首先,為什麼命名時最好不用漢字呢?以我們使用的 vs為例,vs是美國 微軟公司 的開發工具包系列 產品,是用英文開發的,我們使用的大多是漢化後的,在漢化過程中難免會有不足的...
幾種程式設計命名規則
1.匈牙利命名 開頭字母用變數型別的縮寫,其餘部分用變數的英文或英文的縮寫,要求單詞第乙個字母大寫。for example long lsum 0 l 是型別的縮寫 2.小駝峰式 little camel case 第乙個單詞首字母小寫,後面其他單詞首字母大寫。for example string ...
Java程式設計命名規則
為了增強 的可讀性,在定義識別符號時應該遵循一下規則 1.包名所有的字母一律小寫,例如 cn.itcast.test。2.類名和所有介面每個單詞的首字母都要大寫,例如 arraylist iterator。3.常量名的所有字母都大寫,單詞之間用下劃線連線,例如day of month。4.變數名和方...