1:什麼是枚舉程序員
枚舉在C語言中其實就是一些符號常量集,簡單來講,枚舉就是定義了一些符號(字符串),這些字符的本質就是int類型的常量,每一個符號和一個常量相綁定,那麼這個符號就成爲了一個自定義的識別碼,對編譯器來講對枚舉的認知就是符號常量所綁定的那個int類型的數。直白來說,枚舉就是本身定義一些符號,而後這些符號對應int類型的數,對於程序員來說,這些符號能夠幫助程序員理解代碼,而對於編譯器來說,編譯器是不認識我麼定義的枚舉符號的,編譯器只認識這個枚舉變量所對於的int類型的數ide
2:枚舉的做用函數
enum ER { error; right; } int E_or_R(int a , int b) { if(a>b) { return right; } else { return error; } } int main(void) { printf("plese input a & b \n"); scanf("%d%d",&a,&b); int c = E_or_R(a , b); if(c==right) { printf("a>b \n"); } else(c==error) { printf("a<=b \n"); } return 0; }
如上面的代碼所示,咱們經過枚舉元素right和error來判斷函數E_or_R()返回值,這樣就能夠很直觀地看清楚代碼,(由於通常人以爲函數執行成功返回1,函數執行失敗返回1,可是難免有人寫代碼時會把函數執行成功返回0,函數執行失敗返回1)。spa
3:枚舉和宏定義的區別字符串
咱們知道,宏定義也是用來標示一些參數,讓程序員能更直觀地看懂代碼的方法,可是枚舉和宏定義又有區別,好比宏定義是分散定義的,而採用枚舉則能夠集中定義在一個枚舉變量裏面,好比我如今要用 SUN MON 等來定義一週的星期input
採用紅定義的方法是編譯器
#define SUN 0 #define MON 1 ...... #define SAT 6
而採用枚舉的方法it
enum week { SUN, // SUN = 0 MON, // MON = 1; TUE, WEN, THU, FRI, SAT, };
總上所述:編譯
當咱們要定義的常量是一個有限集合時(譬如一星期有7天,譬如一個月有31天,譬如一年有12個月····),最適合用枚舉。(其實宏定義也行,可是枚舉更好)class