C語言——枚舉類型用法


1.枚舉的定義

  enum 枚舉名{ 枚舉元 素1,枚舉元素2,枚舉元素3...};

2.使用枚舉類型的好處

  增加程序的可讀性,我們都知道在計算機中所有信息都是用二進制來表示的,如果你用二進制來表示某件事務是非常不直觀的,為了使程序更加直觀我們引入枚舉。

3.枚舉的應用

 1 /*紅色、黃色、綠色、藍色,黑色*/
 2 enum color{red,yellor,green,blue,black};
 3 int main()
 4 {
 5     char user_color;
 6     while(1)
 7     {
 8         printf("\n請輸入顏色");
 9         scanf("%d",&user_color);
10         switch(user_color)
11         {
12             case red: printf("\n你輸入的是紅色\n"); break;
13             case yellor: printf("\n你輸入的是黃色\n"); break;
14             case green: printf("\n你輸入的是綠色\n"); break;
15             case blue: printf("\n你輸入的是藍色\n"); break;
16             case black: printf("\n你輸入的是黑色\n"); break;
17         }
18     }
19 
20     return 0;
21 }

  枚舉元素列表中,每個元素只能是整型,如果我們不指定某個元素的大小,默認是從0開始排列,如第2行中的枚舉列表中red = 0、yellor = 1......black = 4,從這個代碼中我們可以看到紅色,黃色不再用數字表示,而是用枚舉元素來表示紅色、黃色等一些有意義的詞,而這個枚舉元素的名稱可以自己定義,枚舉元素本質還是數字。

4.用typedef關鍵字將枚舉類型定義成別名,並利用該別名進行變量聲明

 1 typedef enum workday  //此處的workday可以省略,或者改成其他,不會影響后面
 2 {
 3     saturday,
 4     sunday,
 5     monday,
 6     tuesday,
 7     wednesday,
 8     thursday,
 9     friday
10 } workday; //此處的workday為枚舉型enum workday的別名,類似於int

正如上邊代碼注釋所說,worday可以不要,代碼如下

 1 typedef enum
 2 {
 3     saturday,
 4     sunday,
 5     monday,
 6     tuesday,
 7     wednesday,
 8     thursday,
 9     friday
10 } workday; //此處的workday為枚舉型enum workday的別名
11 workday today, tomorrow; //變量today和tomorrow的類型為枚舉型workday,也即enum workday

在程序中我們是直接可以用某個枚舉中的枚舉元素的,在STM32開發庫中這種枚舉用法非常多,下圖就是STM32庫中的代碼示例,利用這個方法開發庫,可以大大增加程序的可讀性。

 1 typedef enum 
 2 {
 3   LED1 = 0,
 4   LED2 = 1,
 5   LED3 = 2,
 6   LED4 = 3
 7 } Led_TypeDef;
 8 
 9 typedef enum 
10 {  
11   BUTTON_WAKEUP = 0,
12   BUTTON_TAMPER = 1,
13   BUTTON_KEY = 2,
14   BUTTON_RIGHT = 3,
15   BUTTON_LEFT = 4,
16   BUTTON_UP = 5,
17   BUTTON_DOWN = 6,
18   BUTTON_SEL = 7
19 } Button_TypeDef;

 

 

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM