命名规范主要有匈牙利命名法、驼峰命名法、帕斯卡命名法。虽然匈牙利命名法被很多人十分有优越感的批判,但是在 Windows 客户端开发中,我还是喜欢使用匈牙利命名法。
一、什么是匈牙利命名法
匈牙利命名法就是 作用域(小写)+类型缩写(小写)+含义,比如 m_strPath
常见作用域的前缀有:g,全局;m,成员变量;s,静态变量。
常见类型前缀有:sz,字符串数组;str,std::string \ CString;n,int;等
二、别人为什么批判匈牙利命名法 & 我的看法
1、类型缩写不靠谱
类型类型可能出现碰撞。比如 str 到底是字符串数组,还是 CString。
但是起码我们知道这个类型是字符串,而且碰撞并不常见。
2、不利重构
在重构时,如果改变了变量类型,去在所有的地方改变量的名字是一件很麻烦的事。
使用 VC 助手的改名功能可以很方便的把所有地方的名字都给改了。
3、想知道变量类型的需求有其他方式来实现
想要知道变量类型,把鼠标放过去,很多 IDE 都可以显示了。
把鼠标放过去看变量类型的速度太慢了,远不如看到变量名字直接知道结果来的方便。
4、发明者的本意并非这样
发明者原来说的前缀类型是自然语义,而非数据类型。
伟哥的发明也不是本意。
5、微软都不建议用了
微软提供的 C++ SDK 头文件还是匈牙利命名法的。
三、我为什么还是要用匈牙利命名法
1、从变量名中一眼就能看到作用域和类型真的是很方便。
2、在 Windows 客户端开发中,微软提供的 SDK 还是匈牙利风格的,保持风格的统一。
卧槽,你这货的微博竟然还在,跑哪里去了?
我是xuqs
卧槽,你这货的微博竟然还在,跑哪里去了?
我是xuqs