色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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宏中添加一個標識符,即可生成一系列相關的操作函數等。

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


審核編輯:劉清

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

    關注

    6037

    文章

    44568

    瀏覽量

    636035
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1369

    瀏覽量

    114758
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1031

    瀏覽量

    47599
  • 裸機
    +關注

    關注

    0

    文章

    39

    瀏覽量

    6396
收藏 人收藏

    評論

    相關推薦

    c語言中標志的設置問題

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

    線程的同步方式幾種

    線程的同步方式幾種
    發表于 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 ?1104次閱讀

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

    三星閃存命名規則,大家閱覽
    發表于 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 ?881次閱讀

    工業機器人控制方式幾種

    工業機器人的控制方式多種多樣,這些方式根據作業任務的不同而有所區別。主要可以分為以下幾種:點控制方式、連續軌跡控制
    的頭像 發表于 09-04 09:31 ?1001次閱讀
    主站蜘蛛池模板: 老阿姨才是最有V味的直播| 欧美精品九九99久久在免费线| 少妇内射兰兰久久| 国产69精品久久久久无码麻豆| 肉耽高h一受n攻| 国偷自产视频一区二区久| 国产在线观看免费观看不卡| 亚洲高清国产品国语在线观看| 精品三级在线观看| 亚洲国产精品特色大片观看| 精品夜夜澡人妻无码AV蜜桃| 91国在线啪精品一区| 人妻 中文无码 中出| 国产免费看片| 18禁黄无遮挡禁游戏在线下载| 人妻熟妇乱又伦精品视频中文字幕| 国产精品色欲AV亚洲三区软件 | 中文无码字慕在线观看| 国产呦精品一区二区三区网站| 一手揉着乳头一手模仿抽插视频 | 波多野结衣 熟女| 日韩内射美女人妻一区二区三区| 国产学生无码中文视频一区| 2020美女视频黄频大全视频| 手机看片国产免费久久网| 久久久久久免费观看| 国产www视频| 亚洲国产夜色在线观看| 麻豆XXXX乱女少妇精品| 中文字幕 人妻熟女| 色欲天天天综合网免费| 麻豆精品传媒一二三区| 国产精品久免费的黄网站| 亚洲黄色大片| 漂亮的av女演员| 久久草香蕉频线观| 国产成人高清亚洲一区app| 中文字幕A片视频一区二区| 小雪奶水涨翁工帮吸的推荐语录| 欧美日韩高清一区| 久久爱狠狠综合网|