女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

主流的 MCU 開發(fā)語言為什么是 C 而不是 C++?

淘晶馳串口屏 ? 2025-05-21 10:33 ? 次閱讀

單片機的地界兒里,C 語言穩(wěn)坐中軍帳,C++ 想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內存空間較勁,C++ 那些花里胡哨的玩意兒,在這兒真玩不轉。

先說內存這道坎兒。您當 stm32f4 的 256k RAM、1M ROM 是標配?多數時候咱打交道的,是 stm8 這種 8k RAM 的 “小矮個兒”,stm32f1 的 32k RAM 就算是 “小康家庭” 了。就這么丁點兒地方,C 語言打個轉都得縮手縮腳,C++ 帶著類、對象、虛函數殺進來,光構造析構的開銷就能把 ROM 啃掉一大塊。您說上實時系統?C 語言寫代碼都得掰著字節(jié)算,C++ 的運行時環(huán)境?在這兒純屬 “奢侈品”,就像讓小毛驢拉火車頭,根本不配套。

再聊動態(tài)內存這事兒。keil 里 stm32f1 的 malloc 默認就 800 字節(jié),您想用 C++ 的動態(tài)內存玩花樣?那些依賴動態(tài)內存的類,分分鐘把棧撐爆。單片機開發(fā)講究的是 “把每滴血都榨干”—— 全局變量往 map 文件里一擺,編譯完內存占用明明白白,出問題順著寄存器和棧區(qū)就能摸到根兒。C++ 的動態(tài)內存監(jiān)控庫?得了吧,那庫自己先占一塊內存,本來就緊張的 RAM 哪經得起這么折騰?咱電子工程師沒那么多講究,估摸好內存直接定全局變量,爆了內存直接扒拉匯編找棧幀,比在 C++ 的內存海里撈針痛快多了。

硬件驅動這塊兒,芯片廠壓根沒給 C++“開小灶”。就說 stm32 的 HAL 庫,用句柄模仿類函數,可要是不用 cubemx 自己擼代碼,那層層嵌套的函數能把人繞暈,改個驅動能薅掉半頭頭發(fā)。反過來看 C 語言的標準庫,直接把寄存器封裝得明明白白,想改哪兒就改哪兒,對著芯片手冊就能硬剛寄存器位。要是發(fā)現廠商把寄存器位置改錯了,分分鐘就能揪出來。C++ 想玩硬件級操作?先穿過類封裝的 “迷宮” 再說,等摸到寄存器,C 語言寫的驅動早跑出老遠了。

最后說說咱寫代碼的人。沒錯,咱在純軟大佬眼里就是 “菜”—— 四年大學就學了 C 語言和匯編,數據結構、算法啥的都是野路子,git、stackoverflow 也不熟,寫的代碼沒少被罵 “屎山”。可您讓那些玩慣高級語言的來搞單片機,分分鐘在內存越界里打轉。咱靠的就是對硬件的死磕勁兒,知道每一行代碼在寄存器里怎么跳,C++ 的優(yōu)雅在這兒不如一句精準的寄存器操作實在。您看市面上的 MCU 例程、廠商庫,有幾個不是 C 語言打底?生態(tài)在這兒擺著,咱犯不著為了好看去折騰那些不實用的語法糖。

在 MCU 開發(fā)這一畝三分地里,C 語言就像一把趁手的螺絲刀,簡單、直接、高效,每一行代碼都能釘在該釘的地方;C++ 則像一把雕花匕首,好看是好看,可在這兒施展不開。咱追求的不是代碼多漂亮,而是讓那幾 k 的 RAM 和幾十 k 的 ROM 實實在在跑起來,不出錯、好調試、能落地 —— 就這點兒實在需求,C 語言足夠漂亮地把活兒干完,何必去夠那夠不著的月亮呢?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17824

    瀏覽量

    360134
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140186
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    是否應該使用C++替代C語言進行開發(fā)工作

    軟件是用C語言編寫的。然而,C++已經逐漸普及,大約23%的新嵌入式軟件項目都是用C++編寫的。C語言
    發(fā)表于 11-05 09:00

    C語言C++運用

    識別等領域得到了進一步的推動和發(fā)展。嵌入式開發(fā)為什么用C語言?我們都知道,嵌入式開發(fā)要用C語言
    發(fā)表于 11-25 10:47

    是否應該使用C++替代C語言進行開發(fā)工作

    ,56%的嵌入式軟件是用C語言編寫的。然而,C++已經逐漸普及,大約23%的新嵌入式軟件項目都是用C++編寫的。C
    發(fā)表于 12-15 07:31

    c++程序設計語言題解

    c++程序設計語言題解是與Bjarne Stroustrup的《C++程序設計語言》一書配套使用的習題解答,為從《C++程序設計
    發(fā)表于 09-05 16:00 ?121次下載
    <b class='flag-5'>c++</b>程序設計<b class='flag-5'>語言</b>題解

    CC++語言參考手冊

    CC++語言參考手冊
    發(fā)表于 06-19 11:12 ?23次下載

    c++c語言之間有什么區(qū)別

    C++是在C語言的基礎上發(fā)展來的,但是并不是C++C語言
    發(fā)表于 12-11 10:17 ?3.2w次閱讀

    C/C++編程語言學習難點及語言

    一般學C++前都要學C,所以通常叫它們C/C++C/C++歷經40余年,也是經久不衰的號稱“永
    發(fā)表于 08-15 10:24 ?2385次閱讀

    C語言C++相互調用

    ? ? 1CC++相互調用 在一個嵌入式系統中大部分的底層和驅動層更多的是采用C語言來進行開發(fā)
    的頭像 發(fā)表于 01-18 11:05 ?3552次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>與<b class='flag-5'>C++</b>相互調用

    嵌入式程序開發(fā)C語言C++究竟應該用哪個?

    在嵌入式軟件程序開發(fā)中,C語言無疑是最常被使用的程序語言。不過應該明白的是,有些嵌入式硬件同時提供C語言
    發(fā)表于 11-03 14:21 ?60次下載
    嵌入式程序<b class='flag-5'>開發(fā)</b>,<b class='flag-5'>C</b><b class='flag-5'>語言</b>和<b class='flag-5'>C++</b>究竟應該用哪個?

    C++語言的發(fā)展

    今年的CPP North C++大會上,谷歌宣布了一門新的編程語言Carbon,并稱其將是“C++的繼任者”。
    發(fā)表于 08-15 14:22 ?712次閱讀

    C語言不是最好的,卻是我最愛的

    雖然 C 語言不是我所學的第一門語言,也不是我的最后一門語言,但是我仍然非常喜歡
    發(fā)表于 11-24 09:47 ?599次閱讀

    淺談C語言C++的前世今生

    C++開發(fā)人員將有這些問題歸咎于CC開發(fā)人員則認為C++
    發(fā)表于 05-26 09:27 ?624次閱讀
    淺談<b class='flag-5'>C</b><b class='flag-5'>語言</b>與<b class='flag-5'>C++</b>的前世今生

    C語言C++的區(qū)別看法

    編寫了自己的業(yè)務愛好項目。那么,為什么我沒有拋棄 C 選擇其他語言呢?我對于 C++的看法又是如何的呢? 1 為什么說C
    的頭像 發(fā)表于 07-06 14:29 ?1254次閱讀

    vb語言c++語言的區(qū)別

    Microsoft開發(fā)的一種面向對象的事件驅動編程語言。它的設計目標是簡化編程過程,讓初學者也能快速上手。與之相比,C++語言是一種通用的、面向對象的編程
    的頭像 發(fā)表于 02-01 10:20 ?3099次閱讀

    c語言,c++,java,python區(qū)別

    C語言C++、Java和Python是四種常見的編程語言,各有優(yōu)點和特點。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?3045次閱讀