www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]學習C你是否會有以下幾點誤解?1.“要理解C,你必須先學習C”?2.“C是一門面向?qū)ο蟮恼Z言”?3.“為了軟件可靠性,你需要垃圾回收”?4.“為了效率,你必須編寫底層代碼”?5.“C只適用于大型、復(fù)雜的程序”?如果你中*了,說明這篇文章適合你看。對某些人,某些任務(wù),在某些時間,其...


學習C 你是否會有以下幾點誤解?
1. “要理解C ,你必須先學習C”?2. “C 是一門面向?qū)ο蟮恼Z言”?3. “為了軟件可靠性,你需要垃圾回收”?4. “為了效率,你必須編寫底層代碼”?5. “C 只適用于大型、復(fù)雜的程序”?如果你中*了,說明這篇文章適合你看。對某些人,某些任務(wù),在某些時間,其中一些誤解曾經(jīng)只是正確的。然而,在如今的C ,應(yīng)用廣泛使用的最先進的ISO C 2011編譯器和工具,它們只是誤解。?下面來一一解釋?誤解一:“要理解C ,你必須先學習C”?學習C 基礎(chǔ)編程比學習C要容易地多。?C幾乎是C 的一個子集,但是它不是最先要學習的最好的子集,因為C缺少計數(shù)支持,類型安全,和易用的標準庫,而C 為簡單任務(wù)提供了這些。?誤解二:“C 是一門面向?qū)ο蟮恼Z言”?C 支持OOP和其他編程風格,但它并不局限于狹隘的“面向?qū)ο蟆?。它綜合地支持了包括面向?qū)ο蠛头盒途幊碳夹g(shù)。通常,一個問題的最優(yōu)解決方案,包含不止一種風格(范例)。“最優(yōu)”,我指的是最短、最易于理解、最有效率和最易于維護等。?“C 是一門面向?qū)ο蟮恼Z言”使人們認為C 不是必要的(當與C做比較時),除非你需要一個巨大的類繼承層次以及很多須函數(shù)(運行時多態(tài))——對很多人和很多問題,這樣應(yīng)用并不合適。相信這個誤區(qū)導致C 因為不是純面向?qū)ο蠖獾阶l責;畢竟,如果你把“好”和“面向?qū)ο蟆钡韧饋?,那么C 明顯包含了很多不是面向?qū)ο蟮臇|西,一定會被認為是“不好”。不管是哪種情形,這個誤解為不學習C 提供了一個很好的借口?誤解三:“為了軟件可靠性,你需要垃圾回收”?在回收不再使用的內(nèi)存上,垃圾回收做的很好,但是并不完美。它并非靈丹妙藥。因為內(nèi)存可以被間接地引用,并且很多資源并不是普通內(nèi)存。?誤解四:“為了效率,你必須編寫底層代碼”?許多人相信高效率的代碼必須是底層代碼。一些人甚至認為底層代碼天生就是高效的(“如果代碼很丑陋,那它一定很高效!一定有人花費了大量時間和精力來優(yōu)化它!”)。當然,你僅僅使用底層代碼是可以寫出高效代碼的,并且有時在直接處理機器資源時必須使用底層代碼。?然而,你一定要衡量一下工作是否有價值:現(xiàn)代C 編譯器非常高效,而現(xiàn)代機器架構(gòu)非常復(fù)雜。如果必須使用底層代碼,一定要通過接口封裝起來,以便于使用。通常,通過高層接口封裝底層代碼,會帶來更好的優(yōu)化(如,避免“濫用”底層代碼)。在關(guān)注效率的場合,首先嘗試用高層抽象來呈現(xiàn)需要的解決方案,而不要不加考慮地使用比特位和指針。?誤解五:“C 只適用于大型、復(fù)雜的程序”?C 是一個巨型的語言。它定義的大小和C#與Java差不多。但是這并不意味著你必須知道每一個細節(jié),或者在每一個程序中都用到所有特性。?接下來再說一個C 非常經(jīng)典的易犯錯的案例?錯誤代碼:?12bool operator( )(const GUID
嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉