匈牙利標記法是由Charles Simonyi發明,是編程中變數的一種命名習慣。
基本介紹
簡介,具體用法,前綴[Prefix],成員命名,變數命名,常量命名和宏定義,函式命名,控制項的命名,注釋,
簡介
匈牙利標記法 這是為了紀念具有傳奇色彩的微軟程式設計師Charles Simonyi。這種標記法非常簡單,即變數名表明該變數數據類型的小寫字母開始。例如,szCmdLine的前綴sz表示“以零結束的字元串”。
具體用法
格式:[Prefix]-BaseTag-Name
前綴[Prefix]
p-指針
rg-集合
c-計數器
h-句柄
BaseTag主要有:
v-void
i-int
f-BOOL
ui-UINT
b-BYTE
ch-CHAR
wch-WCHAR
ul-ULONG
l-LONG
dw-DWORD
hr-HRESULT
fn-funtion
sz-String 以"/0"結尾的字元串
str w-USHORT,SHORT,WORD
成員命名
example:
BOOL m_fInitialized
BYTE *pbBuffer
變數命名
命名必須具有一定的實際意義,形式為xAbcFgh,x由變數類型確定,Abc、Fgh表示連續意義字元串,如果連續意義字元串僅兩個,可都大寫.如OK.
具體例程:
BOOL類型 bEnable;
ch * char chText
c * 類對象 cMain(對象實例)
h * Handle(句柄) hWnd
i * int
n * 無符號整型
p * 指針
sz,str * 字元串 //sz 0結尾字元串
w WORD
x,y 坐標
Char或者TCHAR類型 與Windows API有直接聯繫的用szAppName[10]形式否則用
FileName[10]形式,單個字元也可用小寫字母表示;
Int類型 nCmdShow;
LONG類型 lParam;
UINT類型 uNotify;
DWORD類型 dwStart;
PSTR類型 pszTip;
LPSTR類型 lpCmdLine
LPTSTR類型 lpszClassName;
LPVOID類型 lpReserved
WPARAM類型 wParam,
LPARAM類型 lParam
HWND類型 hDlg;
HDC類型 hDC;
HINSTANCE類型 hInstance
HANDLE類型 hInstance,
HICON類型 hIcon;
int iTmp
float fTmp
DWORD dw*
String , AnsiString str *
m_ 類成員變數 m_nVal, m_bFlag
g_ 全局變數 g_nMsg, g_bFlag
局部變數中可採用如下幾個通用變數:nTemp,nResult,I,J(一般用於循環變數)。
其他資源句柄同上
常量命名和宏定義
常量和宏定義必須具有一定的實際意義;
常量和宏定義必須全部以大寫字母來撰寫,中間可根據意義的連續性用下劃線連線,每一
條定義的右側必須有一簡單的注釋,說明其作用;
資源名字定義格式:
選單:IDM_XX或者CM_XX
點陣圖:IDB_XX
對話框:IDD_XX
字元串:IDS_XX
DLGINIT:DIALOG_XX
ICON:IDR_XX
函式命名
函式原型說明包括引用外來函式及內部函式,外部引用必須在右側註明函式來源: 模
塊名及檔案名稱, 如是內部函式,只要注釋其定義檔案名稱;
第一個字母必須使用大寫字母,要求用大小寫字母組合規範函式命名,必要時可用下劃線
間隔,示例如下:
void UpdateDB_Tfgd (TRACK_NAME); //Module Name :r01/sdw.c
void PrintTrackData (TRACK_NAME); //Module Name :r04/tern.c
void ImportantPoint (void); //Module Name :r01/sdw.c
void ShowChar (int , int , chtype); //Local Module
void ScrollUp_V (int , int); //Local Module
.5結構體命名
大小寫字母組合,第一個字母必須使用大寫字母,必要時可用下劃線間隔。對於私有數
據區,必須註明其所屬的進程。全局數據定義只需注意其用途。
示例如下:
typedef struct
{
char szProductName[20];
char szAuthor[20];
char szReleaseDate[16];
char szVersion[10];
unsigned long MaxTables;
unsigned long UsedTables;
}DBS_DATABASE;
DBS_DATABASE GdataBase;
控制項的命名
用小寫前綴表示類別
用小寫前綴表示類別:
fm 視窗
cmd 按鈕
cob combo,下拉式列表框
txt 文本輸入框
lab labal,標籤
img image,圖象
pic picture
grd Grid,格線
scr 滾動條
lst 列表框
frm fram
注釋
原則上注釋要求使用中文;
檔案開始注釋內容包括:公司名稱、著作權、作者名稱、時間、模組用途、背景介紹等,復
雜的算法需要加上流程說明;
函式注釋包括:輸入、輸出、函式描述、流程處理、全局變數、調用樣例等,複雜的函式
需要加上變數用途說明;
程式中注釋包括:修改時間和作者、方便理解的注釋等;