C语言数据类型之枚举类型

root@LK:/home/cclove # :~/Desktop$ cat tmp3.c 
/*printf 枚举可显示枚举的序号*/
#include <stdio.h>
int main(void)
{
    enum ABC{AAA,BBB,CCC};

    enum ABC e1,e2,e3;

    e1 = AAA;
    e2 = BBB;
    e3 = CCC;

    printf("%d,%d,%dn",e1,e2,e3);
    getchar();
    return 0;
}
root@LK:/home/cclove # :~/Desktop$ cc tmp3.c 
root@LK:/home/cclove # :~/Desktop$ ./a.out
0,1,2
 
root@LK:/home/cclove # :~/Desktop$ cat tmp4.c 
/*定义枚举时可同时定义变量*/
#include <stdio.h>

int main(void)
{
    enum ABC{AAA,BBB,CCC}e1=BBB,e2=BBB+1,e3=e2-2;

    printf("%d,%d,%dn",e1,e2,e3);

    return 0;
}
root@LK:/home/cclove # :~/Desktop$ cc tmp4.c 
root@LK:/home/cclove # :~/Desktop$ ./a.out
1,2,0
root@LK:/home/cclove # :~/Desktop$ cat tmp5.c 
/*同时定义变量时, 你甚至可以不要枚举名*/ 
#include <stdio.h>

int main(void)
{
    enum {AAA,BBB,CCC} e=BBB;

    printf("%dn",e);

    e++;
    printf("%dn",e);

    return 0;
}
root@LK:/home/cclove # :~/Desktop$ cc tmp5.c 
root@LK:/home/cclove # :~/Desktop$ ./a.out
1
2
root@LK:/home/cclove # :~/Desktop$ cc tmp6.c 
root@LK:/home/cclove # :~/Desktop$ cat tmp6.c 
/*可随意指定序号*/

#include <stdio.h>

int main(void)
{
    enum ABC{AAA=2,BBB,CCC=9} e1, e2, e3;

    e1 = AAA;
    e2 = BBB;
    e3 = CCC;

    printf("%d, %d, %dn", e1, e2, e3);

    return 0;
}
root@LK:/home/cclove # :~/Desktop$ ./a.out
2, 3, 9
root@LK:/home/cclove # :~/Desktop$ cat tmp7.c 
/*序号重了都不要紧*/
#include <stdio.h>

int main(void)
{
    enum ABC {AAA=2,BBB=2,CCC} e1, e2, e3;

    e1 = AAA;
    e2 = BBB;
    e3 = CCC;

    printf("%d, %d, %dn", e1, e2,e3);
    return 0;
}
root@LK:/home/cclove # :~/Desktop$ cc tmp7.c 
root@LK:/home/cclove # :~/Desktop$ ./a.out
2, 2, 3
root@LK:/home/cclove # :~/Desktop$




enum   关键字在c中用的是比较多的,它常用来定义标记整型常量,你去看许多操作系统的源代码,都有用这个关键字来一次定义许多标记整型常量,其实它相当于定义一 个整型常量的表,方便应用时查找。当然他的大部分功能都可以被宏定义代替,不过毕竟enum关键字定义的东东是支持类型检查的,可以用编译器来发现一些错 误(enum定义的只能是整型的常量表)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值