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

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在單片機(jī)編程中什么時(shí)候需要用到enum呢

2oON_changxuemc ? 來源:未知 ? 作者:胡薇 ? 2018-11-28 09:18 ? 次閱讀

當(dāng)變量的數(shù)值在幾個(gè)范圍之間,如一個(gè)week變量取值只有Monday,Tuesday,Wednesday,Thursday,F(xiàn)riday,Saturday,Sunday。這樣用enum比較好。當(dāng)然也可以用define.但是define維護(hù)起來比較麻煩, 適合變量的數(shù)值范圍值較少的時(shí)候。

1、用enum關(guān)鍵字說明常量(即說明枚舉常量)有以下幾點(diǎn)好處:

(1) 使程序更容易維護(hù)和直觀。例如,下面定義的枚舉是描述UART支持的傳輸bit位數(shù),從枚舉類型的定義就可以知道UART模塊提供的傳輸bit的幾種模式。

enum{usartDatabits4=USART_FRAME_DATABITS_FOUR,/*4databits(notavailableforUART).*/usartDatabits5=USART_FRAME_DATABITS_FIVE,/**《5databits(notavailableforUART).*/usartDatabits6=USART_FRAME_DATABITS_SIX,/**《6databits(notavailableforUART).*/usartDatabits7=USART_FRAME_DATABITS_SEVEN,/**《7databits(notavailableforUART).*/usartDatabits8=USART_FRAME_DATABITS_EIGHT,/**《8databits.*/usartDatabits9=USART_FRAME_DATABITS_NINE,/**《9databits.*/usartDatabits10=USART_FRAME_DATABITS_TEN,/**《10databits(notavailableforUART).*/}USART_Databits_Enum;

(2)使程序更安全

比如,在寫底層驅(qū)動(dòng)是,向上層提供一個(gè)UART初始化函數(shù)UartInit(uint32 baudrate , uint32 bit)在調(diào)用該函數(shù)時(shí),可能因?yàn)?a href="http://www.1cnz.cn/v/tag/1730/" target="_blank">程序員不了解模塊UART支持的傳輸bit模式而提供了錯(cuò)誤的bit參數(shù)。避免此類現(xiàn)象,我們當(dāng)然也可以在UarTInit()函數(shù)中對(duì)bit范圍進(jìn)行檢查。如果參數(shù)取值是連續(xù)的還好,如果不連續(xù)使用多個(gè)if-else或switch。將耗費(fèi)一定的ROMCPU時(shí)間。

我們可以將函數(shù)定義為UarTInit(uint32 baudrate , USART_Databits_Enum bit)。一來我們可以通過查看USART_Databits_Enum枚舉類型很容易知道UART支持的傳輸bit模式。另一方面在編譯的時(shí)候就可以避免傳遞錯(cuò)誤的參數(shù)。

2、枚舉與宏定義的區(qū)別和聯(lián)系:

宏和枚舉之間的差別主要在作用的時(shí)期和存儲(chǔ)的形式不同,宏是在預(yù)處理的階段進(jìn)行替換工作的,它替換代碼段的文本,程序運(yùn)行的過程中宏已不存在了。而枚舉是在程序運(yùn)行之后才起作用的,枚舉常量存儲(chǔ)在數(shù)據(jù)段的靜態(tài)存儲(chǔ)區(qū)里。(在IAR編譯環(huán)境中,枚舉類型默認(rèn)為字符型,在M3內(nèi)核下編程,為了減少不必要的字符擴(kuò)展指令,可以用?enum_is_int指令來強(qiáng)制使所有的枚舉類型為4bytes。)

但也不能就此說宏比枚舉好,如果需要定義非常多的常量,用一條enum {…。.}明顯比一大堆define更清晰,枚舉也可以用來定義一些特殊類型,比如Bool,如: type enum {FALSE,TRUE} Bool;

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44563

    瀏覽量

    635873
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3619

    瀏覽量

    93777
  • ENUM
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    8305

原文標(biāo)題:枚舉常量在單片機(jī)編程中有何好處

文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么時(shí)候需要用到no phase reversal運(yùn)放

    什么時(shí)候需要用到no phase reversal運(yùn)放? 此時(shí)不用的話會(huì)造成什么影響
    發(fā)表于 08-02 14:09

    單片機(jī)或PLC需要用的東西是什么

    單片機(jī)或PLC需要用的東西一個(gè)580元的PLC,加了一根網(wǎng)線,加了個(gè)幾十元的萬用表與鉗子就可以賣1150,這是因?yàn)榻?jīng)驗(yàn)不足和自己圖省事所以總結(jié)一下學(xué)習(xí)單片機(jī)或plc需要依賴的器材,但
    發(fā)表于 07-01 07:21

    STM32單片機(jī)需要用到的C語言知識(shí)有哪些

    STM32單片機(jī)需要用到的C語言知識(shí)一、基本內(nèi)容二、疑問點(diǎn)1.聲明變量2.預(yù)處理一、基本內(nèi)容二、疑問點(diǎn)1.聲明變量const:可創(chuàng)建全局常量 局部常量, 數(shù)字常量, 數(shù)組常量 結(jié)構(gòu)常量. 用法
    發(fā)表于 07-15 09:24

    一個(gè)系統(tǒng)需要用到多個(gè)按鍵的時(shí)候怎么辦?

    需要用到多個(gè)按鍵的時(shí)候怎么辦?就像數(shù)碼管一樣,該如何解決多個(gè)按鍵輸入問題?這里就引入矩陣鍵盤的概念:鍵盤按鍵數(shù)量較多時(shí),為了減少I/O
    發(fā)表于 01-21 07:49

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧是什么?

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧是什么?
    發(fā)表于 01-25 07:02

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧volatile 關(guān)鍵字應(yīng)用方法:volatile 關(guān)鍵字D語言(版本:2.094之前)并未實(shí)現(xiàn)內(nèi)置volatile關(guān)鍵字,它提供的標(biāo)準(zhǔn)庫中有相關(guān)的實(shí)現(xiàn).
    發(fā)表于 01-25 07:43

    使用GoRK3288庫的時(shí)候需要用到的語法有哪些

    使用GoRK3288庫的時(shí)候需要用到的語法有哪些
    發(fā)表于 03-10 06:49

    51單片機(jī)編程什么時(shí)候要用到波特率倍速?波特率倍速有什么用處?

    51單片機(jī)串口波特率倍速問題,51單片機(jī)編程什么時(shí)候要用到波特率倍速,波特率倍速有什么用處啊,不太明白,會(huì)不會(huì)因?yàn)榇诓ㄌ芈时端儆绊懙酱谙?/div>
    發(fā)表于 10-27 07:34

    D語言編寫單片(STM32F401cc)機(jī)應(yīng)用需要用到的技巧 - 主入口函數(shù)

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧 - 主入口函數(shù)入口函數(shù)入口函數(shù)單片機(jī)一定會(huì)需要一個(gè)主入口函數(shù),至于是那個(gè)主要看linker script
    發(fā)表于 11-29 21:06 ?13次下載
    D語言編寫<b class='flag-5'>單片</b>(STM32F401cc)<b class='flag-5'>機(jī)</b>應(yīng)用<b class='flag-5'>需要用到</b>的技巧 - 主入口函數(shù)

    D語言(dlang)編寫單片機(jī)(cortex-m系列)應(yīng)用需要用到的技巧

    D語言編寫單片機(jī)應(yīng)用需要用到的技巧volatile 關(guān)鍵字應(yīng)用方法:volatile 關(guān)鍵字D語言(版本:2.094之前)并未實(shí)現(xiàn)內(nèi)置volatile關(guān)鍵字,它提供的標(biāo)準(zhǔn)庫中有相關(guān)的實(shí)現(xiàn).
    發(fā)表于 12-01 12:36 ?1次下載
    D語言(dlang)編寫<b class='flag-5'>單片機(jī)</b>(cortex-m系列)應(yīng)用<b class='flag-5'>需要用到</b>的技巧

    漲軸磨損修補(bǔ)需要用到什么材料

    漲軸磨損修補(bǔ)需要用到什么材料
    發(fā)表于 12-18 10:40 ?9次下載

    單片機(jī)或PLC需要用的東西

    單片機(jī)或PLC需要用的東西一個(gè)580元的PLC,加了一根網(wǎng)線,加了個(gè)幾十元的萬用表與鉗子就可以賣1150,這是因?yàn)榻?jīng)驗(yàn)不足和自己圖省事所以總結(jié)一下學(xué)習(xí)單片機(jī)或plc需要依賴的器材,但
    發(fā)表于 12-17 18:49 ?6次下載
    搞<b class='flag-5'>單片機(jī)</b>或PLC<b class='flag-5'>需要用</b>的東西

    物聯(lián)網(wǎng)開發(fā)需要用到哪些編程語言?

    編程語言是關(guān)鍵,物聯(lián)網(wǎng)開發(fā)需要用到哪些編程語言?C語言是物聯(lián)網(wǎng)嵌入式開發(fā)的重要編程語言之一,是軟件開發(fā)的通用語言,可用于絕大多數(shù)的嵌入式系統(tǒng),它是一門面向過程的編
    的頭像 發(fā)表于 02-23 15:39 ?1862次閱讀
    物聯(lián)網(wǎng)開發(fā)<b class='flag-5'>中</b><b class='flag-5'>需要用到</b>哪些<b class='flag-5'>編程</b>語言?

    單片機(jī)開發(fā)需要用到那些軟件?

    單片機(jī)又稱單片微控制器,它是把一個(gè)計(jì)算機(jī)系統(tǒng),包括cpu、ram、rom、定時(shí)/計(jì)數(shù)器和多種i/o接口集成到一個(gè)芯片上。單片機(jī)很多領(lǐng)域都發(fā)揮了重要的作用,那么學(xué)習(xí)
    的頭像 發(fā)表于 09-21 14:39 ?5787次閱讀

    變頻器維修需要用到的工具都有哪些

    變頻器維修需要用到的工具都有哪些
    的頭像 發(fā)表于 10-20 08:42 ?4520次閱讀
    主站蜘蛛池模板: 久久久久综合一本久道| 999久久国产精品免费人妻| 精品国产中文字幕在线视频| 99re6热这里在线精品视频| 中文无码有码亚洲 欧美| 无码国产精品高潮久久9| 内射一区二区精品视频在线观看| 国产亚洲精品线视频在线| 哺乳期妇女挤奶水36d| 一本色道久久综合亚洲精品加| 色欲精品久久人妻AV中文字幕| 蜜臀亚洲AV永久无码精品老司机| 狠狠色丁香婷婷久久综合五月| 高肉黄暴NP文公交车| 91亚洲精品福利在线播放| 一二三四韩国免费观看| 午夜国产精品影院在线观看| 人人干人人爽| 免费无码又爽又黄又刺激网站| 久久vs国产综合色| 精品淑女少妇AV久久免费| 老女老肥熟国产在线视频| 精选国产AV精选一区二区三区 | 日本漫画大全无翼乌| 欧美日韩国产在线一区二区| 美女被艹网站| 免费观看成人毛片| 涩涩免费视频软件| 亚洲一区成人| 伊人久久大香线蕉影院95| 99视频网址| 99re6久久热在线播放| 国产91青青成人a在线| 精品一区二区三区在线成人| 欧美一区二区三区不卡免费| 男生插曲女生身全过程| 天天爽夜夜爽| 亚洲国产精品热久久| 亚洲国产第一区二区三区| 亚洲欧美日韩在线码不卡| 亚洲视频中文字幕在线|