匈牙利標記法

匈牙利標記法

匈牙利標記法是由Charles Simonyi發明,是編程中變數的一種命名習慣。

基本介紹

  • 中文名:匈牙利標記法
  • 性質:編程中變數的一種命名習慣
  • 發明:Charles Simonyi
  • 表明:該變數數據類型的小寫字母開始
簡介,具體用法,前綴[Prefix],成員命名,變數命名,常量命名和宏定義,函式命名,控制項的命名,注釋,

簡介

匈牙利標記法 這是為了紀念具有傳奇色彩的微軟程式設計師Charles Simonyi。這種標記法非常簡單,即變數名表明該變數數據類型的小寫字母開始。例如,szCmdLine的前綴sz表示“以零結束的字元串”。

具體用法

格式:[Prefix]-BaseTag-Name
其中 [Prefix]是可選的,BaseTag是數據類型的縮寫,Name是變數名字,說明變數的作用

前綴[Prefix]

p-指針
rg-集合
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

成員命名

針對函式成員,成員變數用m_開頭,全局變數用g_開頭
example:
BOOL m_fInitialized
BYTE *pbBuffer

變數命名

命名必須具有一定的實際意義,形式為xAbcFgh,x由變數類型確定,Abc、Fgh表示連續意義字元串,如果連續意義字元串僅兩個,可都大寫.如OK.
具體例程:
BOOL類型 bEnable;
ch * char chText
c * 類對象 cMain(對象實例)
h * Handle(句柄) hWnd
i * int
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(一般用於循環變數)。
其他資源句柄同上

常量命名和宏定義

常量和宏定義必須具有一定的實際意義;
常量宏定義在#include和函式定義之間;
常量和宏定義必須全部以大寫字母來撰寫,中間可根據意義的連續性用下劃線連線,每一
條定義的右側必須有一簡單的注釋,說明其作用;
資源名字定義格式:
選單: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,格線
lst 列表框
frm fram

注釋

原則上注釋要求使用中文;
檔案開始注釋內容包括:公司名稱、著作權、作者名稱、時間、模組用途、背景介紹等,復
雜的算法需要加上流程說明;
函式注釋包括:輸入、輸出、函式描述、流程處理、全局變數、調用樣例等,複雜的函式
需要加上變數用途說明;
程式中注釋包括:修改時間和作者、方便理解的注釋等;

相關詞條

熱門詞條

聯絡我們