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

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

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

3天內不再提示

有什么辦法可以做到私有結構體成員與公共結構體成員區別對待呢?

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-08-11 14:42 ? 次閱讀

在文章最后提到之前的隱藏結構體成員的方法是一種完全私有的封裝無法做到"公私分明",這樣通過函數調用在MCU中會存在較大的開銷。

1、原理與技巧

那時候bug菌就在想有什么辦法可以做到私有成員與公共成員區別對待呢?

既然.h文件中的不完全類型僅僅只是一個啥也不含的結構體空殼,那么根據結構體的內存模型以及我們平時經常提到的C語言面向對象設計中的繼承處理。

于是便編寫了如下代碼來驗證我的想法:

參考代碼:

poYBAGL0o9aAbQLGAAD9hCfZ5sI916.pngpoYBAGL0o92AOVYBAAB0SK8WK5A993.pngpYYBAGL0o_WASNMLAACXtOsYS8w370.png

輸出結果:

poYBAGL0o_yAJFQoAABWl3kCgcw166.png

從輸出結果上來看編譯正常,且輸出了正確的結果,member1可被外界直接訪問,而member2只能通過App.c內部直接訪問,或者通過定義外部函數接口進行間接訪問,否則就會報錯。一頓猛如虎的操作竟然驗證了自己的一些想法。

2、優化版本

后來又想了想,如果成員比較多,不是特別好管理,于是嘗試了一個更好的成員管理方式:

參考代碼:

pYYBAGL0pDCALpEpAAC8H4wIN5o435.pngpoYBAGL0pDWARE0QAAD8jASol1E098.pngpoYBAGL0pDyAW16gAACq0UJ90uU981.pngpYYBAGL0pEOAAkJZAAD-dlmim7M607.png

輸出結果:

pYYBAGL0pFyAT6D8AABXBO7RPHI405.png

編譯OK,完工,是不是感覺有一股C++的味道了,如果你還沒有看懂的話,記得多看幾遍,因為這種處理方式算是非常常見的~



審核編輯:劉清

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

    關注

    146

    文章

    17869

    瀏覽量

    361085
  • 接口
    +關注

    關注

    33

    文章

    8961

    瀏覽量

    153271
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140552
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    滲壓計在混凝土結構中的安裝指南

    用于測量土體中的孔隙水壓力、巖和混凝土內的滲透水壓力。在混凝土結構中埋設滲壓計,可以實時監測結構內部的水壓力變化,為工程安全評估和維護提
    的頭像 發表于 05-28 10:55 ?93次閱讀
    滲壓計在混凝土<b class='flag-5'>結構</b><b class='flag-5'>體</b>中的安裝指南

    GLAD應用:全息光柵模擬

    用于模擬全息記錄介質中形成的梯度折射率分布。全息結構一旦形成,就可以在傳輸過程中將一束入射光波逐漸轉換成形成體全息結構的另一束光波。兩束光波之間的能量傳遞轉換效率與
    發表于 05-15 09:32

    C語言中結構與聯合體的深度解析:內存布局與應用場景

    一、基礎概念與核心差異 1.1 結構(Struct)的本質 **結構是C語言中實現數據封裝的基石,其核心特征在于內存獨立性。每個成員變量
    發表于 04-08 09:18

    私有云和公有云什么區別

    私有云和公有云在多個方面存在顯著的區別,以下是具體的比較,主機推薦小編為您整理發布私有云和公有云什么區別
    的頭像 發表于 02-20 10:38 ?613次閱讀

    RC水泥型防震基座與鋼結構防震基座哪些區別

    C水泥型防震基座與鋼結構防震基座以下區別
    的頭像 發表于 01-08 15:10 ?345次閱讀
    RC水泥型防震基座與鋼<b class='flag-5'>結構</b>防震基座<b class='flag-5'>有</b>哪些<b class='flag-5'>區別</b>?

    結構成員的順序會影響結構的大小嗎

    相同的結構成員,如果把順序調整一下,會不會影響結構的大小? 答案是會的,這主要跟字節對齊有關。 比如這樣的
    的頭像 發表于 11-25 16:24 ?517次閱讀

    C語言和C++中結構區別

    同樣是結構,看看在C語言和C++中有什么區別
    的頭像 發表于 10-30 15:11 ?675次閱讀

    typedef和struct區別

    在C語言中, typedef 和 struct 是兩個非常重要的關鍵字,它們在定義數據結構時扮演著關鍵的角色。然而,它們之間一些明顯的區別。 1. struct 關鍵字 struct (結構
    的頭像 發表于 08-20 11:00 ?2366次閱讀

    typedef struct和直接struct的區別

    在C語言中, typedef 和 struct 是兩種不同的關鍵字,它們在定義和使用上有著明顯的區別。 typedef struct 和直接 struct 在 C 語言中用于定義結構類型,但它們在
    的頭像 發表于 08-20 10:58 ?3523次閱讀

    帶你認識貼片一成型電感的材料結構

    貼片一成型電感(也被稱為模壓電感)是一種具有特殊結構和材料組成的電子元件。其材料結構主要包括以下幾個方面: 一、主要材料 1. 金屬粉末 核心材料:一成型電感的主要材料是金屬粉末,
    的頭像 發表于 08-07 16:01 ?954次閱讀
    帶你認識貼片一<b class='flag-5'>體</b>成型電感的材料<b class='flag-5'>結構</b>

    ota升級的庫中,結構upgrade_server_info中pespconn的作用是什么?

    check_cb; struct espconn *pespconn; }; 這個結構中已經ip,port,pespconn這個結構
    發表于 07-12 06:33

    神經元的結構及功能是什么

    的細胞,具有獨特的形態結構。神經元的基本結構包括細胞、樹突和軸突。 (1)細胞:細胞是神經元的中心部分,包含細胞核和其他細胞器。細胞核
    的頭像 發表于 07-03 11:33 ?2535次閱讀

    聚徽觸控-工控一機和 PLC 一什么不同

    在工業自動化領域,工控一機和 PLC 一機都扮演著重要角色。盡管它們在某種程度上有所重疊,但它們在功能、應用和設計結構等方面存在顯著的不同。工控一機和 PLC 一
    的頭像 發表于 06-21 10:05 ?888次閱讀

    ESP32-C3如何把一個const結構固定放在生成的bin文件的最末尾?

    我的芯片是ESP32-C3,需要把一個const結構固定放在生成的bin文件的最末尾,例如: #define USER_SECTION__attribute__ ((used,section
    發表于 06-18 07:52

    請問esp-idf&amp;vscode結構索引不到對應的成員如何解決?

    兄弟們,我用VSCode 初始化結構時,索引不到對應的成員,并且索引會出現不屬于結構體內的東西,有解決辦法嗎,球球了
    發表于 06-14 06:42
    主站蜘蛛池模板: 中文字幕在线观看亚洲 | 久久青青成人亚洲精品 | 黄网在线观看免费 | 天天插天天操 | 片黄免费| 69精品在线观看 | 久久精品乱子伦观看 | 日本一级成人毛片免费观看 | 澳门久久精品 | 色婷婷视频在线观看 | 日本小视频免费 | 亚洲免费三级 | 国模吧双双大尺度炮交gogo | 免费aa | 看全色黄大色大片免费久久 | 禁漫画羞羞动漫入口 | 亚洲综合区图片小说区 | 久久在精品线影院精品国产 | 国产精品人成在线播放新网站 | 色综合天天综合网国产国产人 | 午夜小视频男女在线观看 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 色噜噜噜噜噜在线观看网站 | 美女喷白浆视频 | 又色又爽又黄视频 | 最新国产你懂的在线网址 | 成人午夜免费视频 | 免费人成动漫在线播放r18 | 国内一区二区三区精品视频 | 九色婷婷| 一起射综合网 | 激情综合在线观看 | 二级黄色大片 | 色欧美在线视频 | 97天天摸天天碰天天爽 | 五月六月伊人狠狠丁香网 | baoyu777永久免费视频 | 国产综合视频在线观看 | 日本久操 | 国产农村女人一级毛片了 | 免费欧美黄色网址 |