1. ?嵌入式軟件開發(fā)為什么選擇 C 語言?

        共 1740字,需瀏覽 4分鐘

         ·

        2021-12-29 05:23

        以下內(nèi)容來自公眾號逆鋒起筆,關(guān)注每日干貨及時送達(dá)
        素材來源 | 網(wǎng)絡(luò)
        微信公眾號 | 嵌入式專欄

        這兩年要說最火的編程語言,C語言絕對算其中一個,最近兩年 TIOBE 編程語言排行中,C語言都排在第一、二的位置。


        本月(11月)TIOBE 編程語言排行,C語言排行第二


        地址:
        https://www.tiobe.com/tiobe-index/


        回到主題,為什么嵌入式軟件開發(fā)選擇C語言?

        除了我們看到的C語言很火之外,其實C語言是有一些本質(zhì)的原因。

        C語言特點

        C語言相對JAVA、C#這些高級語言,是一種“輕量級”的編程語言。

        1.C語言有出色的可移植性,能在多種不同體系結(jié)構(gòu)的軟/硬平臺上運行。


        2.簡潔緊湊,使用靈活的語法機制,并能直接訪問硬件。


        能夠直接訪問硬件的語言有匯編和C語言,匯編屬于低級語言,難以完成一些復(fù)雜的功能,但是匯編比C語言訪問硬件的效率更高。所以,一般將硬件初始化的工作交給匯編,比較復(fù)雜的操作交給C語言。


        3.C語言具有很高的運行效率

        C語言直接操作底層寄存器,相比JAVA、C#多層封裝,使其具有高效的運行效率。


        開發(fā)工具

        開發(fā)工具在嵌入式軟件開發(fā)中有重要的地位,大部分嵌入式軟件開發(fā)工具都是針對C/C++編程語言。


        會發(fā)現(xiàn)很多嵌入式C相關(guān)的工具鏈,而很少有C#、JAVA、PHP這些用于嵌入式的工具鏈。


        在單片機領(lǐng)域,集成開發(fā)環(huán)境更是多的數(shù)不過來,Keil、 IAR、 Embedded Studio...等很多。


        面向過程VS面向?qū)ο?/strong>

        C語言是高級語言中的低級語言,具有高級編程語言的特性,也具有低級語言的優(yōu)點。

        所有,你知道為啥C語言是一種“面向過程”的編程語言了吧?

        1.面向過程

        面向過程(Procedure Oriented)是一種以過程為中心的編程思想?!懊嫦蜻^程”也可稱之為“面向記錄”編程思想,他們不支持豐富的“面向?qū)ο蟆碧匦?比如繼承、多態(tài)),并且它們不允許混合持久化狀態(tài)和與邏輯。


        面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。面向過程其實是最為實際的一種思考方式,就算是面向?qū)ο蟮姆椒ㄒ彩呛忻嫦蜻^程的思想。


        可以說面向過程是一種基礎(chǔ)的方法,它考慮的是實際地實現(xiàn)。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模塊化的思想方法。


        2.面向?qū)ο?/span>
        面向?qū)ο蟮姆治龈鶕?jù)抽象關(guān)鍵的問題域來分解系統(tǒng)。面向?qū)ο蟮脑O(shè)計是一種提供符號設(shè)計系統(tǒng)的面向?qū)ο蟮膶崿F(xiàn)過程,它用非常接近實際領(lǐng)域術(shù)語的方法把系統(tǒng)構(gòu)造成“現(xiàn)實世界”的對象。

        面向?qū)ο蟪绦蛟O(shè)計可以看作一種在程序中包含各種獨立而又互相調(diào)用的對象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計主張將程序看作一系列函數(shù)的集合,或者直接就是一系列對電腦下達(dá)的指令。面向?qū)ο蟪绦蛟O(shè)計中的每一個對象都應(yīng)該能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對象,因此它們都可以被看作一個小型的“機器”,即對象。微信搜索readdot,關(guān)注后回復(fù)編程資源獲取23種精品資料


        3.面向過程和面向?qū)ο蟮膮^(qū)別
        以一個人從A地到B地為例:
        • 面向過程就是需要規(guī)劃路線,了解路況,自己做好一系列的準(zhǔn)備。

        • 面向?qū)ο缶褪亲弦惠v出租車,告訴司機我要去B地就可以了,不用關(guān)心其他的事情。


        最后,C語言也有他自身的缺陷,比如代碼的復(fù)用性差,代碼的維護性差,擴展性很差,新增代碼時不改變原來的代碼。

        逆鋒起筆專注于程序員圈子,你不但可以學(xué)習(xí)到java、python等主流技術(shù)干貨,還可以第一時間獲悉最新技術(shù)動態(tài)、內(nèi)測資格BAT大佬的經(jīng)驗、精品視頻教程、副業(yè)賺錢經(jīng)驗,微信搜索readdot關(guān)注!

        嵌入式開發(fā)常見問題解決方法
        書單 | 嵌入式、C語言編程書籍
        微信重要更新,再也不怕被海王騙了..
        如何搭建一臺永久運行的個人服務(wù)器?
        MySQL、Redis、MongoDB 網(wǎng)絡(luò)抓包工具


        點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。

        瀏覽 42
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 国产精品自拍小视频 | 国产精品久久久久久久久久免费看 | 黄色靠逼靠逼 | 又硬又粗又硬又长又大时间持久 | 免费全黄A片免费播放 |