C語言之枚舉

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

相關文章
相關標籤/搜索