匈牙利表示法

原文出處未知  轉自http://www.cnblogs.com/alonecat06/archive/2008/09/07/1286320.html


近來學MFC,看到很多的變量命名都覺得很詭異,但又覺得其中必有一定的規律。看了該文章後才茅塞頓開,原來變量的命名也有大學問在裏頭。 

匈牙利表示法:

    它通過在每一個表示符名字的前面放置一個數據類型助記符,爲程序員提供了對標識符的即時識別。

1.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

hpalette

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

CRet

rect

 

2.一般前綴命名規範

前綴

類型

實例

C

類或結構

CDocument,CPrintInfo

m_

成員變量

m_pDoc,

 

3.變量名規範

前綴

類型

描述

實例

ch

char

8爲字符

chGrade

ch

TCHAR

如果_UNICODE定義,爲16位字符

chName

b

BOOL

布爾值

bEnabled

n

int

整型(其大小依賴於操作系統)

nLength

n

UNIT

無符號值(其大小依賴於操作系統)

nLength

w

WORD

16位無符號值

wPos

l

LONG

32位有符號整型

lOffset

dw

DWORD

32位無符號整型

dwRange

p

*

指針

pDoc

lp

FAR*

遠指針

lpDoc

lpsz

LPSTR

32位字符串指針

lpszName

lpsz

LPCTSTR

如果_UNICODE定義,位32位常量字符串指針

lpszName

h

handle

Windows對象句柄

hWnd

lpfn

callback

指向CALLBACK函數的遠指針

lpfnAbort

 

4.應用程序符號命名規範

 

前綴

符號類型

實例

範圍

IDR_

不同類型的多個資源共享標識

IDR_MAINFRAME

1-0x6FFF

IDD_

對話框資源

IDD_SPELL_CHECK

...

HIDD_

對話框資源的Help上下文

HIDD_SPELL_CHECK

0X20001-0X26FF

IDB_

位圖資源

IDB_COMPANY_LOGO

1-0X6FFF

IDC_

光標資源

IDC_PENCIL

...

IDI_

圖表資源

IDI_NOTEPAD

...

ID_

來自菜單項或工具欄的命令

ID_TOOLS_SPELLING

0x8000-0xDFFF

HID_

命令Help上下文

HID_TOOLS_SPELLING

...

IDP_

消息框提示

IDP_INVALID_PARINO

8-0xDFFF

HIDP_

消息框Help上下文

HIDP_INVALID_PARINO

0X30008-0x3DFFF

IDS_

串資源

IDS_COPYRIGHT

1-0x7FFF

IDC_

對話框內的控件

IDC_RECALC

8-0xDFFF

 

5.Microsoft MFC宏命名規範

名稱

類型

_AFXDLL

唯一的動態連接庫(Dynamic

_ALPHA

僅編譯DEC

_DEBUG

包括診斷的調式版本

_MBCS

編譯多字節字符集

_UNICODE

在一個應用程序中打開Unicode

AFXAPI

MFC提供的函數

CALLBACK

通過指針回調的函數

 

6.庫標識命名規範

指示符

值和含義

u

ANSI(N)或Unicodeu(U)

d

調試或發行:D=調式;忽略指示符爲發行

 

7.靜態庫版本命名規範

描述

NAFXCWD.LIB

調試版本:MFC靜態連接庫

NAFXCW.LIB

發行...

UAFXCWD.LIB

調試版本:具有Unicode支持的MFC靜態連接庫

UAFXCW.LIB

發行...

 

8.動態庫連接命名規範

名稱

類型

_AFXDLL

唯一的動態連接庫(DLL)版本

WINAPI

Windows所提供的函數

 

9.Windows.h命名規範

類型定義

描述

WINAPI

使用在API自己的API中使用該類型

CALLBACK

使用在應用程序回叫例程如窗口和對話框中的FAR

LPCSTR

與LPSTR相同,但LPCSTR用於只讀串指針,其定義類似於(const char FAR*)

UNIT

與可移值的無符號整型類型,其大小由主機環境決定(對Windows NT和Windows 95爲32位)。它是unsigned int的同義詞,使用WORD位置,在一個32位的平臺上希望得到一個16爲無符號值的極少數情況除外

LRESULT

窗口程序返回值的類型

LPARAM

聲明lParam所使用的類型,lParam 是窗口程序的第四個參數

WPARAM

聲明wParam所使用的類型, wParam是窗口程序的第三個參數(一種組合數據類型)

LPVOID

一般的指針類型,與(void*)等同。應該使用它來代替LPSTR。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章