美文网首页
C语言中的枚举类型

C语言中的枚举类型

作者: 兰帕德 | 来源:发表于2022-01-01 21:57 被阅读0次

    如果一个变量只有几种可能的值,则可以定义为枚举类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
    声明枚举类型用enum开头。例如:

    enum weekday{sun, mon, tue, wed, thu, fri, sat};
    

    声明了一个枚举类型enum weekday,则可以用此类型来定义变量。例如:

    enum weekday workday, week_end; // 定义了两个枚举变量
    weekday = mon;
    week_end = sun;
    

    也可以直接定义枚举变量,例如:

    enum {sun, mon, tue, wed, thu, fri, sat} workday, week_end;
    

    其中sun、mon、…、sat称为枚举元素枚举常量
    说明:
    1、在C编译中,对枚举元素按常量处理,故称为枚举常量。它们不是变量,不能进行赋值。例如sun = 7; mon = 1;是错误的。
    2、枚举元素作为常量,是有值的。C语言编译按定义时的顺序使它们的值为0、1、2……也可以在定义时,指定枚举元素的值,例如:

    enum weekday{sun=7, mon=1, tue, wed, thu, fri, sat} workday, ween_end;
    // 定义sun=7, mon=1,以后顺序加1,sat=6
    

    3、枚举值可以用来作判断比较。例如:

    if(workday == mon)…
    if(workday > sun)…
    

    4、一个证书不能直接赋值给一个枚举变量。例如workday=1;是错误的。它们属于不同的类型。应该先进性强制类型转换,然后才能赋值。例如:

    workday = (eunm weekday)2;
    

    相当于将序号为2的枚举元素赋值给workday,相当于

    workday = tue;
    

    相关文章

      网友评论

          本文标题:C语言中的枚举类型

          本文链接:https://www.haomeiwen.com/subject/ygraqrtx.html