在VC++编程环境中,匈牙利命名法是一种广泛使用的命名规范,它强调通过变量名的前缀来指示其数据类型,以提高代码可读性和一致性。这种命名规则源自微软的编程实践中,尤其在Visual C++ (VC) 开发中常见。 1. **类的命名**: 类的命名遵循C++的驼峰命名法,即首字母大写的单词组合,通常是一个描述性的名词短语,不包含下划线。例如,`CMyClass`代表一个自定义的类。 2. **函数(类成员函数)**: 函数名也采用驼峰命名法,通常是一个动宾短语,比如`GetName()`、`PostMessage()`、`SaveProfile()`等。这些函数名称清晰地表达了它们的功能。 3. **成员变量**: 成员变量以`m_`作为前缀,接着是类型标记(如果适用),再是首字母大写的单词组合。例如,`m_szName`表示一个以0结尾的字符串变量,`m_nAge`表示一个整型变量表示年龄。 4. **全局变量**: 全局变量的命名与成员变量类似,只是将`m_`替换为`g_`,例如`g_iGlobalCounter`。 5. **静态变量**: 静态成员变量的命名类似于成员变量,但使用`s_`代替`m_`,如`s_bIsActive`。 6. **参数**: 函数参数的命名与成员变量一致,但没有前缀,如`SaveProfile(NewProfile)`。 7. **指针**: 指针变量通常以`p`作为前缀,如`pMyObject`。指向指针的指针则是`pp`,如`ppMyObjectPointer`。 8. **匈牙利符号表示法**: 这种表示法中,变量前缀根据数据类型不同而变化,例如: - `C`表示字符 - `BY`表示字节 - `N`, `I`表示整数 - `W`表示无符号数 - `L`表示长整数 - `DW`表示无符号长整数 - `B`表示布尔值 - `SZ`, `STR`表示以0结尾的字符串 - `LP`表示32位长整数指针 - `H`表示编号,通常用于Windows对象 - `MSG`表示消息 9. **变量的命名**: 变量名使用上述的前缀加上描述性的小写单词,例如`szFileName`表示一个以0结尾的字符串变量,`lpiDate`表示一个指向整型变量的32位长指针。 10. **函数的命名**: 函数名不带前缀,但遵循驼峰命名法,例如`PlotPixel`,`MemScan`。下划线在函数名中是不被推荐的。 11. **类型和常量的命名**: 类型和常量通常全大写,有时可以包含下划线,如`NUM_SECTORS`、`MAX_CELLS`、`POWERUNIT`。`typedef`定义的用户自定义类型如`UCHAR`也是全大写。 12. **类的命名约定**: 类名的约定可以更复杂,通常使用首字母大写的多个单词组合,如`CMyCustomClass`。虽然不强制,但建议使用这种风格以保持代码的一致性。 匈牙利命名法的主要优点在于提高了代码的可读性,尤其是对于大型项目,使得开发人员能快速理解变量、函数、类等的用途和类型。然而,这种命名规范也因其冗余和与某些编程原则的冲突而受到批评。在现代编程实践中,一些开发者倾向于使用其他命名约定,如帕斯卡命名法(PascalCase)或下划线分隔的命名法(snake_case)。
- 粉丝: 2
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助