c++ 请抛弃匈牙利命名法 - 变量命名代码风格的建议。

我只针对c++码农们讲,其他语言不了解不过应该大同小异。曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX)。
现在我可以负责任的告诉你,把类型名写在前面''''''''''用都没有,对你没看错,就是这么坚决。原因如下:

1.现代的编译器早已经可以明显看出任意变量的类型,你把类型写在前面除了增加代码长度外没有任何好处。
2.真正的匈牙利命名法,是要

 

标注变量的种类(kind)而不是类型(type)

 

这有很大区别。举例:int door_width 表明这是门的宽度,而int nWidth狗屁都不是!写明种类有何好处呢?其中一大好处就是可以明显的看出错误并且使得代码更易读。举例:门宽:int door_width, 车长度:int car_length.当你写如下代码- int door_area = door_width * car_length; 这句代码本意是计算门的面积,但是当你看到代码,用door_width × car_length明显看出car和door不是一个种类,很容易看出错误。而如果你用nWidth × nLength那么恭喜你,除了能看出来类型是个int型之外,你狗屁错误也看不到。这点在代码很多很长的时候尤其突出。

所以,如果使用匈牙利命名法,请理解他的本意,是kind不是type!当然如果有人变态到把类型种类都写上我只能说你应该换个60吋显示器才能看全代码了。

posted @ 2013-08-19 10:24  天堂大鸟  阅读(7491)  评论(9编辑  收藏  举报