C語(yǔ)言枚舉的使用以及作用
一、什么是枚舉
我對(duì)枚舉的理解就是把一些固定的值—列舉出來(lái)分別起個(gè)名字,比如說(shuō)給1取個(gè)名字叫Ture,0取個(gè)名字叫False,Ture和False都是表示同一個(gè)類(lèi)型的數(shù)據(jù),比如說(shuō)都是代表邏輯的對(duì)錯(cuò),這里用51單片機(jī)的IE中斷使能寄存器來(lái)舉一個(gè)例子。
二、枚舉的用法
- 1、直接定義枚舉值,然后給普通變量賦值
- 2、定義一個(gè)帶名稱的枚舉
- 3、定義枚舉別名
#include <stdio.h> enum? { ?? ?EX0_ENABLE = 0x01, ?? ?ET0_ENABLE = 0x02, ?? ?EX1_ENABLE = 0x04, ?? ?ET1_ENABLE = 0x08, ?? ?ES_ENABLE = 0x10, ?? ?ET2_ENABLE = 0x20, ?? ?EA_ENABLE = 0x80, }; typedef enum { ?? ?monday, ?? ?tuesday, ?? ?wednesday, } weekday; int main() { ?? ?unsigned char IEReg; ?? ?weekday day; ?? ?IEReg |= ET0_ENABLE; ?? ?IEReg |= EA_ENABLE; ?? ?day = monday; ?? ?printf("day=%u\r\n",day); ?? ??? ? ?? ?return 0;?? ? }
三、枚舉有什么用,用在哪里?
枚舉的作用:
通過(guò)枚舉總值來(lái)靈活分配數(shù)組的大小,方便從大數(shù)組里調(diào)取需要的數(shù)據(jù)。
為固定的值命名,當(dāng)作數(shù)組訪問(wèn)的下標(biāo),當(dāng)數(shù)組很大時(shí),比如有幾十上百個(gè),那么如果你0-100去表示就很難記住每一個(gè)值代表什么意思。
把列舉的固定值定義為某一種數(shù)據(jù)類(lèi)型,這樣定義的目的是方便提高代碼的可讀性和專業(yè)性。
枚舉和define
比較像,define
也是用一個(gè)別名來(lái)代表一個(gè)數(shù)據(jù),甚至代表一個(gè)函數(shù)。但是enum的值有自動(dòng)遞增的功能,另外enum
是一組同類(lèi)型數(shù)據(jù)的集合,在項(xiàng)目比較大的情況下,用枚舉來(lái)封裝數(shù)據(jù)能更好的實(shí)現(xiàn)模塊化。
四、枚舉要注意的地方
- 枚舉的值默認(rèn)是從0開(kāi)始遞增。
- 枚舉最大值是0XFFFFFFFF,即4個(gè)字節(jié)。
枚舉里面的值不一定要從小到大,默認(rèn)是遞增,也可以自己設(shè)置值。
到此這篇關(guān)于C語(yǔ)言枚舉的使用以及使用的文章就介紹到這了,更多相關(guān)C語(yǔ)言枚舉內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)- 解析最少換車(chē)次數(shù)的問(wèn)題詳解
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)- 解析最少換車(chē)次數(shù)的問(wèn)題詳解2013-05-05C++11新特性之四種類(lèi)型轉(zhuǎn)換cast說(shuō)明
類(lèi)型轉(zhuǎn)換是項(xiàng)目中常使用的一種語(yǔ)法規(guī)則,幾乎每個(gè)編程語(yǔ)言都不可避免的涉及到這方面,下面這篇文章主要給大家介紹了關(guān)于C++11新特性之四種類(lèi)型轉(zhuǎn)換cast說(shuō)明的相關(guān)資料,需要的朋友可以參考下2023-02-02C語(yǔ)言程序設(shè)計(jì)第五版譚浩強(qiáng)課后答案(第二章答案)
這篇文章主要介紹了C語(yǔ)言程序設(shè)計(jì)第五版譚浩強(qiáng)課后答案(第二章答案),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-04-04C++實(shí)現(xiàn)LeetCode(11.裝最多水的容器)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(11.裝最多水的容器),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++中結(jié)構(gòu)體的類(lèi)型定義和初始化以及變量引用
這篇文章主要介紹了C++中結(jié)構(gòu)體的類(lèi)型定義和初始化以及變量引用,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的三子棋小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn)(推薦)
這篇文章主要介紹了使用C++實(shí)現(xiàn)插件模式時(shí)的避坑要點(diǎn),本文主要分析實(shí)踐中常見(jiàn)的、因?yàn)閷?duì)原理不清楚而搞出來(lái)的產(chǎn)品里的坑,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08C++中引用、內(nèi)聯(lián)函數(shù)、auto關(guān)鍵字和范圍for循環(huán)詳解
本文主要梳理了C++當(dāng)中一些瑣碎的知識(shí)點(diǎn),包括有命名空間,缺省參數(shù),引用,auto關(guān)鍵字和內(nèi)聯(lián)函數(shù),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02c++的virtual和override作用及說(shuō)明
這篇文章主要介紹了c++的virtual和override作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11