匈牙利命名法的優缺點

匈牙利約定優點
匈牙利約定與其它命名約定一樣,擁有由命名約定所帶來的一切共同優點。由于有這樣
多的標準名稱,因此在任何一個單個子程序或程序中要特殊記憶的名字是非常少的。匈牙利
約定完全可以在不同項目中采用。
匈牙利約定可以使得在命名中容易產生定義的區域變得準確清楚。特別是約定中對
First,Min,Last,Max 和 Lim 的準確區分在實際中是尤其有幫助的。匈牙利約定可以使
人對編譯程序無法檢查的抽象數據類型進行檢查:cpaReformat[i]很可能是錯誤的,因為
cpaReformat 不是數組,而 apaReformat[i]則可能是正確的,因為 apaReformat[i]是數
組。
匈牙利約定可以在類型不嚴格的語言或環境中對類型進行說明。例如,在 Windows 環
境下編程時,需要你放棄許多類型,這極大地限制了編譯程序進行嚴格類型檢查的能力。
而建立約定則可以對環境的這一弱點作出補償,匈牙利約定還可以使名稱更簡潔,可以用
CMedals 而不用 TotalMedals 來代表獎牌的數量,使用 pNewScore,而不是用
NewScorePtr 命名一個新分數指針。

匈牙利約定缺點
一些版本的匈牙利約定事實上忽視了用抽象數據類型作為基本類型。它們以程序語言
中整型、長整型、浮點數和字符串為基礎來建立基本類型。匈牙利約定基本類型事實上是
沒有什么價值的,因為它使得程序員陷入對類型進行人工檢查的困擾之中,而不是讓編譯
程序對類型進行更加快速而又準確的檢查。
這種形式匈牙利約定的另一個問題是它把數據的意義與其表現聯系在一起。比如,說
明某一變量是整型的,把它改為長整型的時,不得不改動這一變量的名稱。
匈牙利約定的最后一個問題是它鼓勵了懶惰、不含什么信息的變量名的出現。當程序
員用hwnd 來命名對窗口的操作時,往往忽視了他所指的到底是哪種窗口、對話框、菜單還
是幫助區的屏幕?顯然用 hwndmenu 要比 hwnd 清楚得多。以變量的意義為代價來獲得對
其類型的精確描述顯然是愚蠢的。不過好在可以用加限定詞的辦法來同時獲得完整的意義
和精確的類型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453182.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453182.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453182.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搶占式和非搶占式的進程調度

非搶占式(Nonpreemptive) 讓進程運行直到結束或阻塞的調度方式 容易實現 適合專用系統,不適合通用系統 搶占式(Preemptive) 允許將邏輯上可繼續運行的在運行過程暫停的調度方式 可防止單一進程長時間獨占…

圖形學基礎知識

本篇主要給大家介紹圖形學基礎知識,了解Unity圖像渲染機制,以及圖像渲染管線流程。 主要是因為伴隨著VR/AR的飛速發展,為了滿足VR高清高幀率的極限渲染,著色器編程(Shader)也成為了Unity程序開發人員的必備…

12種排序算法

https://blog.csdn.net/love_gaohz/article/details/46673907 轉載于:https://www.cnblogs.com/kongk/p/8641077.html

計算機應用基礎精品課程申報表,《計算機應用基礎》精品課程申報書(修改意見)...

4-3教學條件(含教材使用與建設;促進學生主動學習的擴充性資料使用情況;配套實驗教材的教學效果;實踐性教學環境;網絡教學環境(網絡平臺,網絡課件))突出的地方用紅色表示。1.教材建設本課程目前使用的教材是…

用博客見證自己的成長

感謝CSDN博客,給我提供了一個學習交流的平臺,自從開通博客以來,感覺自己的生活一下充實了很多。通過寫博客來積累知識的同時,也給生活帶來的很多的喜悅。 第一次發表博客;第一次有訪客;第一次得到博客勛章&…

調度隊列模型

調度隊列模型及準則 1 僅有進程調度的調度隊列模型: 每個進程在執行時都可能出現以下三種情況: (1) 任務在給定的時間片內已經完成,該進程便在釋放處理機后進入完成狀態 (2) 任務在本次分得的時間片內尚未完成,OS便將該任務再放入…

linux基礎命令(-)

最近在學linux,老師課堂上講的估計下課就忘了,現整理下來以備不時之需。 PS1x //修改終端提示符su root //切換用戶ssh root192.168.116.129 //加密遠程連接 yum -y install sl //小火車yum -y install oneko //鼠標兔子date //查看日期cal 11 19…

數據庫相關整理

一、MySQL 1、mysql如何做分頁 mysql數據庫做分頁用limit關鍵字,它后面跟兩個參數startIndex和pageSize 2、mysql引擎有哪些,各自的特點是什么? http://www.cnblogs.com/ctztake/p/8453990.html 3、數據庫怎么建立索引 create index account_…

api接口怎么對接_系統對接項目管理方面怎么做?從一次項目接口對接說起

故事:最近業務方有一個新的業務合作模式,需要與第三方公司進行系統的對接,原本預期2周可以完成的項目,最后要用到3周時間才能完成,出現的現象其實還挺典型的,也不是沒遇到過,因為自己這邊的進度…

周轉時間 平均周轉時間 帶權周轉時間 平均帶權周轉時間

1.周轉時間 2.平均周轉時間 平均周轉時間是對n個而言的 3.帶權周轉時間 真正的運行時間指的是進程占有處理機的時間 4.平均帶權周轉時間 即n個平均的帶權周轉時間

程序員第一定律:關于技能與收入

在軟件這個行業里有些規則是很有殺傷力的,比如很有名的摩爾定律。 總結出這些規則的意義在于可以大致的照明方向,免得努力來努力去卻走到了陰溝里。 現實中種種利益紛爭、觀點之爭看似紛繁,但在大時間尺度下來看卻都是規則的實現手段。 這就好…

快速高效 | iOS身份證識別

一:簡介 demo新增身份證國徽面識別,可識別出簽發機關和有效期。 快捷支付涉及到方方面面,同時安全問題既是用戶所關心的,也是制作者不容忽視的重要部分。 比如涉及到支付和金錢的app,商戶端app等等,都需要進…

用計算機怎樣給文章分解,計算機試卷6分解..pdf

計算機試卷 6一、單選題1. 第三代計算機采用 ______ 作為主要的電子器件。A. 電子管B. 晶體管C.大規模集成電路D.小規模集成電路答案: D2. 數據是信息的載體,包括數值、文字、語言、圖形和 ______等不同形式。A. 多媒體B.表達式C. 圖像D. 函數答案&#…

unity應用開發實戰案例_「簡歷」STAR法則的實戰應用,附手把手教學案例

關注應屆生求職網,了解更多求職信息本文共2072字,預計閱讀需3分鐘本期分享導師-Anna_青云導師51Job職場導師知乎職場千贊答主多年獵頭及多行業人力資源管理經歷職業生涯規劃師、職業生涯咨詢師、心理咨詢師終身學習踐行者、斜杠青年、職場教練在簡歷優化…

一起看一下主流應用使用了哪些三方庫

背景 我們在進行Android開發時往往會面臨技術選型的問題, 面對如此多的開源框架如何進行選擇、選擇的標準是什么,這是一個值得思考的問題. 為此我在后臺爬取了6000多個主流應用,逐個反編譯統計它們使用了哪些開源框架,因此做了一個款應用 基本思路 首先我們要有Apk才可以進行分…

黑客——技術的凝聚者???

寫在前面: 不知道在中國,有多少人能真正的理解什么是hack,當hack被加上商業的成分就失去了本來的色彩,如今多如繁星的大小類黑客站點如雨后春筍般出現,不過是否有技術,統統叫hack,拿著別人的工具去砍掉幾個…

SOA架構設計經驗分享—架構、職責、數據一致性

1.背景介紹2.SOA的架構層次 2.1.應用服務(原子服務)2.2.組合服務2.3.業務服務(編排服務)3.SOA化的重構 3.1.保留服務空間,為了將來服務的組合4.運用DDDGRASP進行分析和設計(防止主觀的判斷導致錯誤的假設&a…

計算機設備沒有音頻,電腦沒有音頻設備怎么辦

有些朋友的的電腦沒有聲音,任務欄右下角也沒有小喇叭聲音圖標,進入到控制面板里面的聲音選項里面去設置,在“音量”項目中顯示“沒有音頻設備”,很多朋友遇到這種情況不知道應該怎么解決,今天筆者就電腦沒有音頻設備怎…

HDLC協議概述

一 HDLC概述 1.1 HDLC的發展歷史 高級數據鏈路控制(High-Level Data Link Control或簡稱HDLC),是一個在同步網上傳輸數據、面向比特的數據鏈路層協議,它是由國際標準化組織(ISO)根據IBM公司的SDLC(SynchronousData Link Control…