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

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

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

3天內不再提示

有幾種方式供大家更好的管理標志位

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

嵌入式開發中難免會涉及到非常多的標志位處理,特別是玩單片機、裸機開發的朋友,比如跟一些模塊配合聯調會遇到各種信號是否到位、成功等等狀態,而這些信號大多都是bool類型,1個bit即可進行標識。當然如果僅僅是幾個標志,直接拿個uint8_t的整形來進行標識也不會影響什么,但如果特別多的話似乎就比較廢RAM了。然而為了更好的管理這些標志位等,有個如下幾種方式供大家更好的管理這些標志位 :

1、位域直接標識

采用位域是管理這些標志位比較直接且方便的方式,代碼如下所示:

pYYBAGL0n1mAVOK-AAEN0DnWL3M884.png

這些標志位的操作無非就是置位,清零、以及讀取三種方式。

但如代碼中這樣的操作方式在語句或語義表達上還是不夠直觀。

bug菌經常談到,代碼可以不寫注釋,不過你的每個變量、函數名稱等需要足夠的直觀,所以很多朋友習慣把這些標志封裝起來。

2、枚舉+移位

為了更好的表達一般會對標志位進行進一步的封裝,如下代碼所示:

pYYBAGL0n3GAK6mgAAE5yGF5gJk595.png

當然封裝成函數是相對比較耗時的,不過代碼也會更加的易懂,如果確實容忍不了函數封裝帶來的時間消耗,把函數修改為宏代碼片段或者內斂函數(當然前提是編譯器支持)也是可行的。

3、宏列表

或許這里才是本文的重中之重~

以前跟大家介紹過,用宏自動化的生成各種代碼片段,以使得代碼更加的緊湊。當然可讀性會相對降低一點,但對于重復性代碼就不需要太多考慮了。

poYBAGL0n5iARzYMAAEO0Tet6bY249.pngpoYBAGL0n56AJQIxAAEkmT32Yb4575.png

如果以前有過類似代碼處理的朋友,應該看這段代碼還是比較輕松的吧,如果有點生疏,可以一層一層展開了解。

其主要的功能就是通過宏替換和代碼拼接符號,自動的生成通用的代碼片段,這樣做的好處就是不再需要我們在代碼中定義一大堆setflag、clrflag、getflag等函數。

通過上面的代碼當我們向TAGLIST宏中添加一個標識符,即可生成一系列相關的操作函數等。

這樣一方面可以及簡化代碼,同時也避免一些人工編碼帶來的錯誤。


審核編輯:劉清

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

    關注

    6044

    文章

    44631

    瀏覽量

    639136
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1369

    瀏覽量

    115082
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1036

    瀏覽量

    47745
  • 裸機
    +關注

    關注

    0

    文章

    39

    瀏覽量

    6443
收藏 人收藏

    評論

    相關推薦

    c語言中標志的設置問題

    來進行標識也不會影響什么,但如果特別多的話似乎就比較廢RAM了。然而,為了更好管理這些標志等,個如下
    的頭像 發表于 12-18 15:37 ?2575次閱讀

    線程的同步方式幾種

    線程的同步方式幾種
    發表于 05-26 07:13

    請問通信幾種方式

    請問通信幾種方式
    發表于 10-28 09:15

    存儲管理的存儲方式幾種呢?分別有何優缺點呢

    存儲管理的存儲方式幾種呢?分別有何優缺點呢?
    發表于 12-23 06:34

    數據的通信方式/同步方式幾種

    數據的通信方式幾種?數據的同步方式幾種
    發表于 02-28 07:31

    方品質管理規劃

    方品質管理規劃對方實施品質管理是現代企業管理的基本做法,也是公司將長期開展的基礎工作,對產品及原輔料實施有效的
    發表于 02-01 15:08 ?29次下載

    VCD租賃管理系統畢業設計大家參考

    VCD租賃管理系統畢業設計大家參考 部分代碼如下: Save Format v3.0(19990112)@begin Unchecked@end;@begin Targets 0 "vcd.pbt";@end;D
    發表于 03-27 13:59 ?2次下載

    打印機方式

    打印機方式              方式指的
    發表于 12-29 09:49 ?1119次閱讀

    三星閃存命名規則,大家閱覽

    三星閃存命名規則,大家閱覽
    發表于 10-17 09:45 ?14次下載
    三星閃存命名規則,<b class='flag-5'>供</b><b class='flag-5'>大家</b>閱覽

    Java Map的幾種循環方式學習總結

    本文檔內容介紹了基于Java Map的幾種循環方式學習總結,參考
    發表于 03-19 15:51 ?0次下載

    電容器幾種標志方法

    電容器是一種容納電荷的元器件,單位F,μF,MF,nF,pF。其中m代表1/1000,u代表1/1000000,n代表1/1000000000,p代表1/1000000000000。通常器件也會有一些標志,根據電容器的標注可以更好
    的頭像 發表于 09-04 09:40 ?4.5w次閱讀

    常用高壓電機的啟動方式哪些

    關于高壓電機,特別是大容量高壓電動機,首要成績就是電機的啟動,及電機啟動方式的選擇,電機啟動方式幾種,在這里引見幾種目前最常用的
    的頭像 發表于 08-26 17:53 ?1.1w次閱讀

    軸承跑內圓幾種修復方式

    軸承跑內圓幾種修復方式
    發表于 01-23 11:07 ?7次下載

    線程池的創建方式幾種

    的開銷。線程池的創建方式多種,下面將詳細介紹幾種常用的線程池創建方式。 手動創建線程池 手動創建線程池是通過實例化ThreadPoolExecutor類來創建線程池。在創建Threa
    的頭像 發表于 12-04 16:52 ?946次閱讀

    工業機器人控制方式幾種

    工業機器人的控制方式多種多樣,這些方式根據作業任務的不同而有所區別。主要可以分為以下幾種:點控制方式、連續軌跡控制
    的頭像 發表于 09-04 09:31 ?1304次閱讀
    主站蜘蛛池模板: 天天摸天天做天天爽在线 | 五月天婷婷免费观看视频在线 | 午夜精品视频任你躁 | www操| 日本黄色大片免费看 | 色视频线观看在线播放 | 五月天婷婷网亚洲综合在线 | 好吊色青青青国产在线观看 | 91天天操| 国产三级日本三级日产三 | 久久亚洲精品国产亚洲老地址 | 狠狠se| 男人天堂欧美 | 我不卡老子影院午夜伦我不卡四虎 | 日本黄视频网站 | 国产三级日本三级日产三 | 国产午夜毛片v一区二区三区 | 欧美日韩亚洲国产一区二区综合 | 国产精品主播在线观看 | 国产成人永久在线播放 | 免费男女| 欧美成人xxxx | se色综合视频 | 在线五月婷婷 | 狠狠做久久深爱婷婷97动漫 | 99久久成人国产精品免费 | 成人黄色在线网站 | 久久免费精品高清麻豆 | 永久视频在线观看 | 中国人黑人xxⅹ性猛 | 久久综合中文字幕 | 97九色| 亚洲视频在线一区二区 | 成人夜夜 | 欧美a区| 五月婷婷爱 | 欧美一级第一免费高清 | 免费爱爱视频网站 | 男人视频网站 | 啪啪激情综合 | 华人永久免费视频 |