匈牙利命名法:编程规范与实例解析

需积分: 11 5 下载量 92 浏览量 更新于2024-09-10 收藏 18KB DOCX 举报
"匈牙利命名规则是一种编程规范,旨在通过结合变量的属性、类型和对象描述来提高代码的可读性和可维护性。由匈牙利程序员Charles Simonyi提出,并在微软的推广下广泛传播。匈牙利命名法的基本原则是变量名等于属性加类型加对象描述,确保名字具有明确含义且易于记忆。例如,表单变量可以表示为'frm',如果表单名为'Switchboard',则变量名为'frmSwitchboard'。对于不同类型的变量,匈牙利命名法使用特定的前缀,如'p'表示指针,'fn'表示函数,'l'表示长整型等。全局变量、常量、类成员变量等也有各自的前缀标识,如'g_'、'c_'和'm_'。通过这种方式,程序员可以迅速识别变量的用途和类型,提升协作效率。" 匈牙利命名规则的历史与影响: 匈牙利命名法起源于20世纪80年代,由匈牙利出生的软件工程师Charles Simonyi在IBM工作期间提出。Simonyi后来加入微软,将这一命名规则带入了微软的开发实践中,尤其是在Windows API和早期的Visual Basic中。随着时间的推移,虽然有些开发者批评这种方法过于冗长且有时难以理解,但匈牙利命名法仍然被广泛采用,尤其是在系统级编程和低级别编程领域。很多程序员和团队根据自己的需求和偏好对这种规则进行了适应和调整。 应用示例与规范: 在匈牙利命名法中,变量名的构成通常是: 1. 属性部分:如全局变量使用'g_',常量使用'c_',C++类成员变量使用'm_',静态变量使用's_'等。 2. 类型部分:例如指针变量前缀为'p',函数指针为'fn',无效变量为'v',句柄为'h',长整型为'l',布尔值为'b',浮点型为'f',双字为'dw',字符串为'sz',短整型为'n',双精度浮点为'd',计数为'c'(通常为'cnt'),字符为'ch',整型为'i'(通常用'n'),字节为'by',字为'w',实型为'r',无符号整型为'u'。 3. 描述部分:这部分描述变量的具体用途,如最大值'Max',最小值'Min',初始化'Init',临时变量'T'(或'Temp'),源对象'Src',目的对象'Dest'等。 例如,'hwnd'表示窗口句柄,其中'h'代表句柄,'wnd'代表窗口;'pfnEatApple'表示指向EatApple函数的指针,'pfn'表示函数指针,'EatApple'是函数名。再如,'g_cch'表示全局的字符计数变量,'g_'表示全局,'cch'结合了字符计数的类型描述。 在MFC(Microsoft Foundation Classes)和Windows编程中,匈牙利命名规则通常用于句柄、控件和结构变量,如'HWND'用于窗口句柄,'CWnd'是MFC中的窗口类,'pWnd'表示指向CWnd对象的指针。 总结来说,匈牙利命名规则虽然在某些现代编程实践中被认为过时,但它在历史上对代码的规范性和可读性的提升起到了重要作用。尽管如此,每个开发者和团队仍然可以根据项目需求和个人喜好选择是否采用以及如何调整这种命名规范。