日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++编程(一):匈牙利命名法

發布時間:2024/7/23 c/c++ 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++编程(一):匈牙利命名法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

匈牙利命名法

許多 Windows 程序員都使用“匈牙利標記法”作為變量命名約定。這是為了紀念具有傳奇色彩的微軟程序員 Charles Simonyi。這種標記法非常簡單,其基本原則為:

  • 即變量名(標識符)以一個或者多個小寫字母開始,這些字母表示變量的數據型態。例如:szCmdLine 中的 sz 代表“以0結尾的字符串(StringZero)”;在 hInstance 和 hPrevInstance 中的 h 前綴表示“句柄(Handle)”;在 iCmdShow 中的 i 前綴表示“整型(Integer)”。

  • 前綴以后就是一個首字母大寫(或者多個)的單詞,這些單詞清楚地指出了源代碼內那個對象的用途。比如:m_szStudentName表示一個學生名字的類成員變量,數據類型是字符串型

  • 當命名結構變量時,可以用結構名(或者結構名的一種縮寫)的小寫形式作為變量名稱的前綴,或者用作整個變量名。例如:msg 變量是 MSG 型態的結構;wndclass 是 WNDCLASSEX 型態的一個結構;ps 是一個 PAINTSTRUCT 結構,rect 是一個 RECT 結構。

  • 匈牙利表示法能夠幫助程序寫作者及早發現并避免程序中的錯誤。由于變量名既描述了變量的作用,又描述了其數據型態,就比較容易避免產生數據型態不合的錯誤。

    下表列出了經常用到的變量名前綴:

    1)屬性前綴:

    前綴數據類型
    g_全局變量
    c_常量
    m_c++類成員變量
    s_靜態存儲變量
    rg_寄存器變量
    ex_外部變量

    2)一般變量類型前綴:

    前綴數據類型
    cchar 8位字符 ;cGrade
    str,sstring 字符型 ;strName
    sz以"\0"結束的字符串 ;szAppName
    ch字符 char 或 WCHAR 或 TCHAR 如果_UNICODE定義,則為16位字符 chName
    b,fBOOL 布爾值 ,f 表示“flag”;bEnable
    by字節 BYTE (無符號字符)
    n,iint 整型(其大小依賴于操作系統);nLength
    sishort int 短整型 ;siSequ
    nUINT 無符號值(其大小依賴于操作系統);nHeight
    wWORD(無符號短整型) 16位無符號值 ;wPos
    ffloat 浮點型(有時也指文件) ;fRadius
    ddouble 雙精度型 ;dArea
    lLONG 長整型 ;lOffset
    ldlong double 長雙精度型 ;ldRate
    dwDWORD 雙字(32位無符號長整型) ;dwRange
    p* 指針 ;pDoc
    lpFAR* 遠指針 ;lpszName
    lpszLPSTR 32位常量字符串指針 ;lpszName
    lpszLPCSTR 32位常量字符串指針 ;lpszName
    lpszLPCTSTR 如果_UNICODE定義,則為32位常量字符串指針 ;lpszName
    hhandle Windows對象句柄 ;hWnd
    lpfncallback 指向CALLBACK函數的遠指針
    if輸入文件流 ;ifDataFile
    of輸出文件流 ;ofStuFile
    fn函數
    h句柄
    x,yint,表示 x 坐標和 y 坐標
    cx,cyint,表示 x 或 y 的長度,c 表示“count”(計數)
    c(通常用cnt)計數
    C類或結構 ; CDocument,CPrintInfo
    S結構體 ; SAddress
    r實型
    u無符號
    v無效

    3)描述前綴

    前綴數據類型
    Max最大
    Min最小
    Init初始化
    T(或Temp)臨時變量
    Src源對象
    Dest目的對象

    4)Microsoft MFC變量(宏)命名規范

    前綴數據類型
    IDR_不同類型的多個資源共享標識; IDR_MAIINFRAME; 1~0x6FFF
    IDD_對話框資源; IDD_SPELL_CHECK; 1~0x6FFF
    HIDD_對話框資源的Help上下文; HIDD_SPELL_CHECK; 0x20001~0x26FF
    IDB_位圖資源; IDB_COMPANY_LOGO; 1~0x6FFF
    IDC_光標資源; IDC_PENCIL; 1~0x6FFF
    IDI_圖標資源;IDI_NOTEPAD;1~0x6FFF
    ID_來自菜單項或工具欄的命令; ID_TOOLS_SPELLING; 0x8000~0xDFFF
    HID_命令Help上下文; HID_TOOLS_SPELLING;0x18000~0x1DFFF
    IDP_消息框提示; IDP_INVALID_PARTNO;8~0xDEEF
    HIDP_消息框Help上下文; HIDP_INVALID_PARTNO;0x30008~0x3DEFF
    IDS_串資源; IDS_COPYRIGHT;1~0x7EEF
    IDC_對話框內的控件; IDC_RECALC; 8~0xDEEF
    _AFXDLL唯一的動態連接庫(Dynamic Link Library,DLL)版本
    _ALPHA僅編譯DEC Alpha處理器
    _DEBUG包括診斷的調試版本
    _MBCS編譯多字節字符集
    _UNICODE在一個應用程序中打開Unicode
    AFXAPIMFC提供的函數
    CALLBACK通過指針回調的函數

    5)Microsoft MFC、句柄、控件及結構的命名規范

    示例:

    (1)文件名的匈牙利命名法:
    文件的名稱也應該遵循匈牙利命名法,其以“F”+名字(名字首字母大寫)的形式出現。比如:

    FFun.cpp(工程名)FName.c(文件名)(打開VC++之后的命名)

    (2)常量的匈牙利命名法:
    所有的常量命名都是以“c_”+名字(名字都是大寫字母,多個單詞用“_”連接)的形式出現。比如:

    # define c_MAX_NUM 100;

    (3)變量的匈牙利命名法:
    應用匈牙利命名法,所有的變量名都應該以前綴+名字(名字首字母大寫)的形式出現。比如:

    char szName;int iNum;

    PS:計數(備注)變量不適用匈牙利命名法,直接使用i,j,k。

    (4)函數的匈牙利命名法:
    函數的命名不帶前綴,函數中每一個單詞的開頭字母都要大寫。比如:

    int ConvertNumber(int ix);void ShowMessage(char szMessage);

    (5)結構體的匈牙利命名法:
    結構體類型命名必須以“”+名字(名字都是大寫字母,多個單詞用“”連接)的形式出現。替代名以名字都是大寫字母,多個單詞用“”連接的形式出現。結構體變量命名必須以“m”+名字(與變量命名一致)的形式出現。比如:

    typedef struct _DATABAS { char m_ szProductName[20]; char m_szAuthor[20]; char m_szReleaseDate[16]; char m_szVersion[10]; }DBS_DATABASE;

    總結

    以上是生活随笔為你收集整理的C++编程(一):匈牙利命名法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。