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

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

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

枚舉類型的簡單擴(kuò)展學(xué)習(xí)

冬至子 ? 來源:吾愛單片機(jī) ? 作者:echigh ? 2023-05-25 15:45 ? 次閱讀

枚舉類型的使用分兩步:

1.定義一個(gè)特定的枚舉類型

2.定義該枚舉類型的變量并使用

以下學(xué)習(xí)內(nèi)容均已經(jīng)過實(shí)測:

1.定義枚舉類型的值只能是整型常量,正數(shù)、負(fù)數(shù)和零都可以,但不可以是浮點(diǎn)數(shù)

2.對枚舉類型做sizeof試驗(yàn):

(1)我在stm32單片機(jī)上試驗(yàn),也即ARM編譯器上,枚舉類型的存儲(chǔ)大小按定義的值里面需要占內(nèi)存最大的給,即1、2、4、8都有可能,遵循夠用原則

(2)而在windows上試驗(yàn),即GNU GCC編譯器上,枚舉類型的存儲(chǔ)大小固定為4(但當(dāng)定義中有超過4個(gè)字節(jié)大小的值時(shí),存儲(chǔ)大小變?yōu)?)

(3)無論哪個(gè)編譯器,枚舉類型的值最長只能為8個(gè)字節(jié),更長的大小不接受

試驗(yàn)參考代碼,可以自己改定義中的值大小去測結(jié)果:

enum DAY
{
  MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
int main()
{
  printf("sizeof(day):%d\\r\\n", sizeof(day));
  printf("sizeof(enum DAY):%d\\r\\n", sizeof(enum DAY));
  getchar();
}

3.如何用extern修飾枚舉類型

(1)錯(cuò)誤的修飾代碼,在類型的定義前加extern將起不到任何作用,因?yàn)閑xtern是用來修飾變量的。以下代碼不會(huì)報(bào)錯(cuò),但會(huì)警告,extern出現(xiàn)在這里起不到任何作用

extern enum DAY
{
  MON = 0, TUE, WED, THU, FRI, SAT, SUN
};

(2)正確的修飾代碼,在枚舉變量定義前加extern

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

    關(guān)注

    1

    文章

    126

    瀏覽量

    21500
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17513
  • STM32單片機(jī)
    +關(guān)注

    關(guān)注

    59

    文章

    549

    瀏覽量

    58741
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3400
收藏 人收藏

    評論

    相關(guān)推薦

    使用枚舉類型表示狀態(tài)機(jī)進(jìn)入死循環(huán)

    在定義狀態(tài)機(jī)中的狀態(tài)時(shí),除了可以使用宏(define)或者參數(shù)(parameter)聲明定義外,還可以使用枚舉類型
    的頭像 發(fā)表于 11-07 17:46 ?1013次閱讀
    使用<b class='flag-5'>枚舉</b><b class='flag-5'>類型</b>表示狀態(tài)機(jī)進(jìn)入死循環(huán)

    C語言必備知識枚舉

    枚舉類型是ANSI C新標(biāo)準(zhǔn)所增加的。如果一個(gè)變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉是指將變量的值一一列舉出來,變量的值只限于
    的頭像 發(fā)表于 11-29 16:07 ?778次閱讀

    labview中的基本函數(shù)發(fā)生器應(yīng)用時(shí)信號類型接線枚舉有誤

    各位好,我是一個(gè)labview初學(xué)者,在學(xué)習(xí)利用基本函數(shù)發(fā)生器編寫程序時(shí),信號類型一連線接枚舉控件,結(jié)果出現(xiàn)“枚舉沖突”,不知是為何?請高手指導(dǎo),多謝。上傳了一個(gè)連線后的
    發(fā)表于 03-15 20:36

    labview小白求教枚舉類型控件

    學(xué)習(xí)labview還才3天,看的書是《labview寶典》,現(xiàn)在正好看到78頁,關(guān)于“獲取日期/時(shí)間字符串”函數(shù),其中說到日期格式是枚舉類型,但是我實(shí)際測試,給枚舉控件插入了三個(gè)項(xiàng),值
    發(fā)表于 12-20 21:01

    詳細(xì)講解c語言enum枚舉類型

    詳細(xì)講解C語言enum枚舉類型在實(shí)際應(yīng)用中,有的變量只有幾種可能取值。如人的性別只有兩種可能取值,星期只有七種可能取值。在 C 語言中對這樣取值比較特殊的變量可以定義為枚舉類型。所謂
    發(fā)表于 12-21 23:22

    枚舉類型最后面增加項(xiàng)報(bào)錯(cuò)

    各位大神:我的枚舉類型RadioState,在最后面增加一項(xiàng),之后程序中很多用到RadioState的地方報(bào)錯(cuò),這個(gè)是什么原因造成的?下圖是我沒有改之前的枚舉類型信息:下圖是我添加了一
    發(fā)表于 05-15 12:02

    深入理解java枚舉類型enum用法

    ; StringFRI = Fri; StringSAT = Sat; StringSUN = Sun; } 語法(定義) 創(chuàng)建枚舉類型要使用 enum 關(guān)鍵字,隱含了所創(chuàng)建的類型都是 java.lang.Enum 類
    發(fā)表于 09-27 11:49 ?0次下載

    枚舉是C語言中的一種基本數(shù)據(jù)類型

    在C語言中,枚舉類型是被當(dāng)做 int 或者 unsigned int 類型來處理的,所以按照 C 語言規(guī)范是沒有辦法遍歷枚舉類型的。不過在一
    的頭像 發(fā)表于 09-25 15:45 ?8669次閱讀
    <b class='flag-5'>枚舉</b>是C語言中的一種基本數(shù)據(jù)<b class='flag-5'>類型</b>

    go語言枚舉類型怎么用

    go 語言枚舉類型是這么用的?在什么場景下會(huì)用到枚舉?本文對 go 語言枚舉做了詳細(xì)講解。 枚舉,是一種重要的數(shù)據(jù)
    的頭像 發(fā)表于 09-02 09:43 ?5193次閱讀

    數(shù)字硬件建模SystemVerilog-枚舉數(shù)據(jù)類型

    上一節(jié)介紹了已經(jīng)被淘汰的$unit聲明空間,今天我們來看看一種重要的數(shù)據(jù)類型-枚舉數(shù)據(jù)類型。
    的頭像 發(fā)表于 07-01 17:44 ?1773次閱讀

    SystemVerilog中枚舉類型的使用建議

    SystemVerilog中枚舉類型雖然屬于一種“強(qiáng)類型”,但是枚舉類型還是提供了一些“不正經(jīng)”的用法可以實(shí)現(xiàn)一些很常見的功能,本文將示例一
    的頭像 發(fā)表于 09-01 14:20 ?1732次閱讀

    淺析SystemVerilog中的枚舉類型

    枚舉類型定義了一組具有名稱的值,在沒有指定值時(shí)默認(rèn)是int型數(shù)值。
    的頭像 發(fā)表于 10-13 09:44 ?1654次閱讀

    Java枚舉的特點(diǎn)及用法

    在 Java 枚舉出現(xiàn)之前,通常會(huì)使用常量類來表示一組固定的常量值,直到Java 1.5之后推出了枚舉,那么枚舉類型有哪些特點(diǎn),它比常量類又好在哪里呢。 本文將分析一下
    的頭像 發(fā)表于 09-30 10:02 ?1503次閱讀

    java switch case值能為枚舉值嗎

    Java中的switch語句可以接受枚舉類型的值作為參數(shù)。在Java中,枚舉是一種特殊的數(shù)據(jù)類型,它定義了一個(gè)固定數(shù)量的命名常量。因此,可以將枚舉
    的頭像 發(fā)表于 11-30 14:41 ?5479次閱讀

    枚舉有多大?c語言枚舉end的作用是什么?

    枚舉有多大?c語言枚舉end的作用是什么? 枚舉在C語言中是一種常見的數(shù)據(jù)類型,用于定義一組相互關(guān)聯(lián)的常量或者變量。它通常用于表示一系列可能的取值,使得程序更加易讀和易維護(hù)。在C語言中
    的頭像 發(fā)表于 01-19 14:19 ?629次閱讀