各大网站网址是多少,家居企业网站建设平台,沭阳三剑客做网站,水果网站建设计划书匈牙利命名法
许多 Windows 程序员都使用“匈牙利标记法”作为变量命名约定。这是为了纪念具有传奇色彩的微软程序员 Charles Simonyi。这种标记法非常简单#xff0c;其基本原则为#xff1a; 即变量名#xff08;标识符#xff09;以一个或者多个小写字母开始#xff0…匈牙利命名法
许多 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位字符 cGradestrsstring 字符型 strNamesz以\0结束的字符串 szAppNamech字符 char 或 WCHAR 或 TCHAR 如果_UNICODE定义则为16位字符 chNamebfBOOL 布尔值 f 表示“flag”bEnableby字节 BYTE 无符号字符niint 整型其大小依赖于操作系统nLengthsishort int 短整型 siSequnUINT 无符号值其大小依赖于操作系统nHeightwWORD无符号短整型 16位无符号值 wPosffloat 浮点型有时也指文件 fRadiusddouble 双精度型 dArealLONG 长整型 lOffsetldlong double 长双精度型 ldRatedwDWORD 双字32位无符号长整型 dwRangep* 指针 pDoclpFAR* 远指针 lpszNamelpszLPSTR 32位常量字符串指针 lpszNamelpszLPCSTR 32位常量字符串指针 lpszNamelpszLPCTSTR 如果_UNICODE定义则为32位常量字符串指针 lpszNamehhandle Windows对象句柄 hWndlpfncallback 指向CALLBACK函数的远指针if输入文件流 ifDataFileof输出文件流 ofStuFilefn函数h句柄xyint表示 x 坐标和 y 坐标cxcyint表示 x 或 y 的长度c 表示“count”计数c通常用cnt计数C类或结构 CDocumentCPrintInfoS结构体 SAddressr实型u无符号v无效
3描述前缀
前缀数据类型Max最大Min最小Init初始化T或Temp临时变量Src源对象Dest目的对象
4Microsoft MFC变量宏命名规范
前缀数据类型IDR_不同类型的多个资源共享标识 IDR_MAIINFRAME 10x6FFFIDD_对话框资源 IDD_SPELL_CHECK 10x6FFFHIDD_对话框资源的Help上下文 HIDD_SPELL_CHECK 0x200010x26FFIDB_位图资源 IDB_COMPANY_LOGO 10x6FFFIDC_光标资源 IDC_PENCIL 10x6FFFIDI_图标资源IDI_NOTEPAD10x6FFFID_来自菜单项或工具栏的命令 ID_TOOLS_SPELLING 0x80000xDFFFHID_命令Help上下文 HID_TOOLS_SPELLING0x180000x1DFFFIDP_消息框提示 IDP_INVALID_PARTNO80xDEEFHIDP_消息框Help上下文 HIDP_INVALID_PARTNO0x300080x3DEFFIDS_串资源 IDS_COPYRIGHT10x7EEFIDC_对话框内的控件 IDC_RECALC 80xDEEF……_AFXDLL唯一的动态连接库Dynamic Link LibraryDLL版本_ALPHA仅编译DEC Alpha处理器_DEBUG包括诊断的调试版本_MBCS编译多字节字符集_UNICODE在一个应用程序中打开UnicodeAFXAPIMFC提供的函数CALLBACK通过指针回调的函数
5Microsoft 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;