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定义的只能是整型的常量表)
5454

被折叠的 条评论
为什么被折叠?



