"VC++变量,范围前缀等命名规则.pdf"
在VC++编程中,遵循良好的命名规范是非常重要的,因为它可以提高代码的可读性和可维护性。匈牙利命名法是一种广泛使用的变量命名方法,它通过在变量名中包含类型信息来帮助程序员更好地理解代码。以下是关于VC++变量命名规则的详细解释:
1. **匈牙利命名法规则**:
- **范围前缀(Scope Prefix)**:这个前缀用于指示变量的作用域。例如,`g_`表示全局变量,`m_`表示成员变量,`l_`表示局部变量。尽量避免使用全局变量,如果必须使用,可以添加特定模块的前缀以增加可读性,如`g_Fea_SomeVariable`。
- **类型前缀(Type Prefix)**:这部分用来表示变量的数据类型。例如,`b`代表`BOOL`,`n`代表`int`,`w`代表`WORD`,`l`代表`LONG`,`dw`代表`DWORD`,`p`和`lp`代表指针类型。
- **限定词(Qualifier)**:这通常指的是变量的具体用途或特征。例如,`chGrade`中的`Grade`,`bEnabled`中的`Enabled`。
2. **特殊类型命名约定**:
- 类和接口的命名:类前缀通常是`Lm`,表示类的模块归属。接口前缀`I`,如`IUnknown`。对于非全局类,使用具有语义的前缀,比如`LmSketchPoint`表示草图点的类。类实例命名通常带下划线前缀,如`_StartPoint`和`_EndPoint`。
- 特殊约定:某些特定类如`MouseTool`的派生类前缀为`_Mt`,对话框类前缀为`CDlg`,橡皮条类前缀为`_Rb`。
3. **常见数据类型的前缀**:
- `ch`:8位字符,`TCHAR`在定义了`UNICODE`时为16位字符。
- `b`:布尔值,`BOOL`类型。
- `n`:整数,大小依赖于操作系统。
- `w`:16位无符号整数。
- `l`:32位有符号整数。
- `dw`:32位无符号整数。
- `p`:普通指针。
- `lp`:远指针。
- `lpsz`:指向字符串的指针。
4. **最佳实践**:
- 使用有意义的限定词来描述变量的用途,提高代码的可读性。
- 避免过度使用全局变量,尽量将数据封装在对象中作为成员变量。
- 对于特定模块的变量,使用模块名称作为前缀,如`g_Fea_SomeVariable`表示特征模块的全局变量。
- 遵循一致的命名规则,确保整个项目中的命名风格统一。
通过遵循这些规则,开发人员可以创建出更清晰、更易于理解和维护的代码,减少潜在的错误并提高团队间的协作效率。在实际编程中,还需要根据项目的具体需求和团队的约定进行适当的调整。