• <object id="wee46"></object>
  • <center id="wee46"><tt id="wee46"></tt></center><kbd id="wee46"></kbd>
  • <sup id="wee46"></sup>
  • 廈門IT培訓
    美國上市IT培訓機構

    13429669395

    裸編程怎么做?裸編程具體做法

    • 時間:2020-11-04 13:58
    • 發布:廈門達內IT培訓
    • 來源:疑難解答

    前文說到裸編程要有思想,也許還不夠具體,接下來就是要具體說裸編程的思想的具體做法。 沒有思想的裸程序就如一副人體骨架,有個人形,但沒有人樣,骨骼之間的關節都是靠膠水或拉線連接起來的,生硬而呆板。如果給骨架包上皮肉,加上靈魂,我們就會驚嘆:啊!這是帥哥,這是美女!因為骨架活了。

    裸程序也一樣,如果按傳統的思維方式說這樣就足夠了,那么裸程序就形如骨架,通常只是一些功能的粗糙堆砌,也只會叫后人看了說這程序垃圾,而后人再做也未必能跳出這個圈子,那么后后人看了又叫這程序垃圾,如此下去,代代相傳,傳了什么?傳了一個總被叫垃圾的東西:無思想的裸程序。

    我做了程序好多年,也思考了編程好多年,不斷的經驗積累告訴我:寫好的程序不是如何去完成代碼,而是如何去組織代碼。上位機中面向對象的編程思想,就是一個非常可取的思想。 面向對象的編程思想在上位機中是有一個非常豐富的開發包和功能強大的操作系統支持的,裸編程如何引入這樣的思想呢?也許很多人會覺得不可能。

    其實,沒有什么是不可能的。再復雜的思想,最終都會歸結到匯編,歸結到裸程序,我們的單片機程序,正是一種裸程序。只是在單片機編程時和微機編程時我們站在開發平臺上的高度不一樣,而已! 對這個高度的理解,也許很多人很困惑,因為我們平時很少注意它們,那么這里我就舉個其他的例子來說明,盡管和裸編程好象不很相關,但是這個例子里的高度概念十分清晰。

    我們知道網絡傳輸標準層次有七層:應用層、表示層、會話層、傳輸層、網絡層、鏈路層、物理層,這么多層做什么用?也許理解這樣分層的概念也十分辛苦,但是理解這樣分層的思想,就容易多了,而且這也是我們硬件工程師們最應該借鑒的思想,讓我們的硬件設計更具有標準性和前瞻性。

    這個七層的思想從根本上講就是將一個網絡傳輸產品細化,讓不同的制造商選擇一個適合自己的層次開發自己的產品,層次不一樣,他們所選擇的開發基礎和開發內容就不一樣,高一層開發者繼承低層開發者的成果,從而節省社會資源,提高社會生產力。對這個指導思想我就不贅述了,各位自己去理解,這里要說的是,微機上的面向對象編程思想就是如同在應用層上實現的思想,而裸程序的面向對象思想則如同在鏈路層上實現的思想,他下面沒有軟件開發包,只有物理構架。但是在應用層上實現的思想,最終都要翻譯到物理構架上。

    看懂了上面的例子,就一定明白,裸程序的面向對象思想,是可以實現的,只是難度要大得多,理解要難得多。但是這不要緊,這正是軟件水平的表現,你喜歡技術,又何懼之?其實也不會難到哪里去,只是把做事情的方式稍微改變一下而已。 傳統上我們都喜歡用功能來劃分模塊,細分任務,面向對象思想不這樣。面向對象思想則是先從一個任務中找出對象,在對象中攙雜些模塊等來實現功能的。

    這就是兩種風格截然不同的地方。比如我們要讓我們的單片機把顯示信息輸出到顯示器,那么傳統的分析方法是信息格式化、格式化數據送顯示器顯示,似乎這樣也就足夠了,不同的顯示器用不同的送顯示程序或者程序段,配置不同的變量,能共的共起來,不能共的分開。

    但是面向對象的思想不是這樣做的,而是首先把顯示器當作一個對象,該對象具有一些功能和一些變量屬性,不同的顯示器在對象中使用相同的代碼標識,如函數指針(C語言中),這樣對于任何一個不同的顯示器,在調用時都使用同樣的代碼。也許有人說,傳統的做法這樣也可以做呀,為什么要弄得羅里吧唆的呢?其實不然,使用了正確的思想的好處在前頭已經說了好多了,如果還模糊就上去再看一次。

    說了那么多理論,現在就說些具體的做法吧。以KeilC為編譯環境來說說一個對象具體組織的一些做法。首先是找出對象,如顯示器,這就是一個典型的對象。其次是分析一個活對象所應具有的基本特征,即屬性與動作。顯示器的屬性如:類型代號、亮度、對比度、顯存等,動作如:初始化、內容刷新和顯示、開啟和關閉、內容閃爍等花樣顯示等。

    這樣分也比較容易理解,下面是對于代碼的組織上,要注意對象的獨立性與完整性,首先把顯示器對象單獨放在一個文檔上,屬于對象特有的變量與對象的定義放在一起,要區分公有變量與私有變量的定義方式,對于私有變量要考慮臨時變量與永久變量的安排,這些安排都是對變量生命期的嚴格確定,這樣可以節省內存,避免混亂。

    如某一個函數要使用一個變量,函數在調用完了就退出了,而有一個變量只有它使用,卻要保存每一次調用函數所產生的結果,這樣的變量怎么定義呢?很多人會直接定義一個全局變量,但是一個好的做法是把這個變量定義成該函數的局部變量,但是定義成靜態的,那么這樣這個變量對其他代碼就是透明的,完全不可能會被誤修改,而且代碼分類性好,便于將來的維護。

    用函數指針來統一不同類型的顯示器不同的處理方式,也是一個很好的處理辦法,那樣可以讓具體處理方式千差萬別的顯示器都能用一個統一的對象,但是函數指針要慎重使用。

    好了,說長了我就頭暈,不說了,思想的精華,不必有一樣的形態,不同的人會有不同的理解,我只希望能給大家的程序生涯拋磚引玉,我就覺得很有成就感了。最后,達內嵌入式培訓機構提醒每一個it愛好者:如果你想要在短時間內快速入門,順利掌握一門技術,建議還是認真學習視頻。多練習,多動手。

    版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

    預約申請免費試聽課

    怕錢不夠?就業掙錢后再付學費!    怕學不會?從入學起,達內定制課程!     擔心就業?達內多家實踐企業供你挑選!

    上一篇:嵌入式環境下軟件設計的特點
    下一篇:Java架構師培訓機構怎么選?

    UI設計怎么學?學完UI設計可以從事哪些工作?

    學好平面設計需要哪些知識

    快速改善UI設計的技巧有哪些

    零基礎如何入門UE交互設計?

    • 關注微信公眾號

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    江西省

    貴州省

    廣西省

    海南省

    深夜办公室完整版在线观看,中文文字幕在线电影,尹人在线最新香蕉视频,欧美,日韩,国产,专区