日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

C++中匈牙利命名法是否该淘汰

發布時間:2023/12/13 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 C++中匈牙利命名法是否该淘汰 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在C++中經常使用匈牙利命名法,這在早期是可理解的,那時開發環境(IDE)沒有語法亮顯和自動顯示變量定義的功能,所以使用匈牙利命名法就能一眼看出變量是什么類型的。

說起匈牙利命名法,必須區分匈牙利應用命名法和匈牙利系統命名法,后者在前者基礎上發展而來并蓋過前者。

原始的匈牙利命名法,現在被稱為匈牙利應用命名法,由1972年至1981年在施樂帕洛阿爾托研究中心工作的程序員查爾斯·西蒙尼發明。西蒙尼建議的大多數前綴都是自然語義的,其前綴是為了說明變量的應用屬性或業務屬性,例如“String dogName, manName;”;

而匈牙利系統命名法的前綴是為了說明變量的系統屬性,比如類型,例如“String strName;”,系統命名法在從某種程度上來說是冗余的。

很多人討厭匈牙利命名法,認為多此一舉,看起來令人厭惡,其實應該歸罪于微軟,是微軟Windows誤導和糟蹋了匈牙利命名法。在第一個Windows API包推出時,微軟在示例代碼和API中大量使用由變量類型作前綴的命名法,由于微軟強大的影響力,以至于非常多的軟件都以此為標準。雖然西蒙尼在很早時就意識到這個問題,但他也無法阻擋這種趨勢,只好和微軟這種命名法劃定界限,分出匈牙利應用命名法和匈牙利系統命名法。在微軟內部,除了Word和Excel開發團隊還在使用最原始的匈牙利應用命名法,其他團隊和其他公司都在使用微軟推出的匈牙利系統命名法。隨時不斷發展,基本上很少有人知道最初的匈牙利命名法了。后來很多人發現匈牙利系統命名法的缺點,大量攻擊其缺陷,推薦大家不要再用匈牙利命名法,連同匈牙利應用命名法也一同受到否定。

我支持下列觀點:

1. 一般不使用匈牙利系統命名法,不用前綴也能明白含義的就不用,其次是優先使用匈牙利應用命名法

a. int nCount --> count; (小寫字母開頭)
b. CString strPluginName --> pluginName; (其余單詞首字母大寫)
c. std::wstring wstrFileName --> filename or fileName; (如果變量名較短,可全部小寫,只要不影響閱讀)
d. int cxWin, cyWin; (使用表示應用屬性或業務屬性的小寫字母做前綴)
e. char* tmpName; (匈牙利應用命名法)

2. 在使用MFC或Windows API時,可以使用匈牙利系統命名法,對于指針變量可使用p前綴

a. CListBox wndItems;
b. CPoint ptCursor; CRect rcBtn;
c. LPCTSTR pszName; or pName;
d. Cx_Interface<Ix_MyObj> pIFObj; Cx_Ptr objItem;

3. 遵循遺留系統及所在模塊的已有習慣

如果是在遺留系統中做維護,應遵循已有代碼所使用的標準,避免顯得格格不入。如果所在開發小組已經習慣于某種命名法,則遵循,避免交流不一致,畢竟怎么命名與開發成敗無關。

總結

以上是生活随笔為你收集整理的C++中匈牙利命名法是否该淘汰的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。