C語言必備知識枚舉體
枚舉類型是ANSI C新標準所增加的。如果一個變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉是指將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內。
枚舉的定義形式
enum 枚舉類型名
{
枚舉元素列表
}枚舉變量列表;
可以先聲明類型再定義變量,也可以同時進行
舉例
//先聲明類型再定義變量
enum weekday
{
sun,
mon,
tue,
wed,
thu,
fri,
sat
};
enum weekday workday,week_end;
//聲明類型同時定義變量
enum
{
sun,
mon,
tue,
wed,
thu,
fri,
sat
} workday,week_end;
枚舉的使用
#include < stdio.h > //printf scanf fputc
enum weekday
{
sun,//默認是0開始 后面依次遞增
mon,
tue,
wed,
thu,
fri,
sat
};
enum weekday workday;
int main(void)
{
workday = mon;
printf("workday = %drn",workday);
return0;
}
枚舉注意事項
- 在編譯中,對枚舉元素按常量處理,它們不是變量,不能對它們賦值。
- 枚舉元素作為常量,它們是有值的,語言編譯按定義時的順序使它們的值為0,1,2,…。
- 枚舉值可以用來做判斷比較。如: if(workday = = mon)… if(workday > sun)…
- 一個整數不能直接賦給一個枚舉變量。應先進行強制類型轉換才能賦值。如:workday = (enum ewwkday)2;
單片機中使用枚舉的例子
描述GPIO工作模式的枚舉
/**
* @brief GPIO Configuration Mode enumeration
*/
typedefenum
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode */
GPIO_Mode_AN = 0x03/*!< GPIO Analog Mode */
}GPIOMode_TypeDef;
描述GPIO工作速度的枚舉
/**
* @brief GPIO Output Maximum frequency enumeration
*/
typedefenum
{
GPIO_Low_Speed = 0x00, /*!< Low speed */
GPIO_Medium_Speed = 0x01, /*!< Medium speed */
GPIO_Fast_Speed = 0x02, /*!< Fast speed */
GPIO_High_Speed = 0x03/*!< High speed */
}GPIOSpeed_TypeDef;
至此,枚舉的簡單介紹就到這了。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6037文章
44569瀏覽量
636182 -
C語言
+關注
關注
180文章
7606瀏覽量
137064 -
代碼
+關注
關注
30文章
4797瀏覽量
68711 -
GPIO
+關注
關注
16文章
1205瀏覽量
52163 -
枚舉
+關注
關注
0文章
16瀏覽量
4605
發布評論請先 登錄
相關推薦
C語言中枚舉精講分析
? ? ?在使用帶有數字性質的名稱時有的時候需要用到枚舉的方式進行定義函數名字,按照對應的數字格式來對應相應的名稱。枚舉成員的值是常量不是變量。 ? ? ?我們首先講解一下枚舉與結構體
C語言枚舉簡述
在C語言中,如果一個變量只有幾種可能的值,則可以定義為枚舉類型,所謂“枚舉”就是指把可能的值一一列舉出來,變量的值只限于列舉出來的值的范圍內。
評論