在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

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

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

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

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

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

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

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

    關注

    146

    文章

    17802

    瀏覽量

    359524
  • C語言
    +關注

    關注

    180

    文章

    7629

    瀏覽量

    140087
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    C語言C++運用

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

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

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

    c++程序設計語言題解

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

    CC++語言參考手冊

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

    c++c語言之間有什么區別

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

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

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

    C語言C++相互調用

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

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

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

    C++語言的發展

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

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

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

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

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

    C語言C++的區別看法

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

    vb語言c++語言的區別

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

    c語言,c++,java,python區別

    C語言C++、Java和Python是四種常見的編程語言,各有優點和特點。 C語言
    的頭像 發表于 02-05 14:11 ?2999次閱讀
    主站蜘蛛池模板: 亚洲四虎永久在线播放 | 偷偷要色偷偷 | 国产精品一区二区三区免费视频 | 天天爽天天爽 | 4虎影院永久地址www | 中文字幕第8页 | 成人a级特黄毛片 | 免费看欧美理论片在线 | 91啪免费网站在线观看 | 淫欲网| 国产无遮挡床戏视频免费 | 三级电影天堂网 | 一级黄色片在线 | 人人免费人人专区 | 欧美黑人巨大xxx猛交 | 男人女人真曰批视频播放 | 天天拍夜夜添久久精品中文 | 亚洲成人免费网站 | 欧美三级视频在线 | 亚洲午夜精品久久久久久抢 | 亚洲mv在线观看 | 奇米成人影视 | 色婷婷综合激情视频免费看 | 欧美乱码视频 | 欧美成人免费大片888 | 久久久久久久国产精品影院 | 中文字幕不卡在线播放 | 婷婷丁香五月中文字幕 | 深夜在线观看大尺度 | 午夜网站在线观看 | 综合色99| 国产嫩草影院在线观看 | 午夜精品久久久久 | 99久久久精品免费观看国产 | 丁香婷婷久久 | 性感美女视频黄.免费网站 性高清 | 丁香花在线 | 欧美.亚洲.日本一区二区三区 | 国产精品手机在线 | 手机视频在线播放 | 在线免费视频观看 |