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吋顯示器才能看全代碼了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM