枚举作为整数
2015-06-17 10:23
197 查看
1、枚举作为整数
在系统内部,C语言会把枚举变量和常量作为整数来处理,默认情况下,编译器会把整数0、1、2、3……赋给特定枚举中的常量。如枚举city中,GZ、FS、SZ、DG分别被赋值0、1、2、3。
而枚举变量C1被保存为0,C2为3……
2、枚举值的取值范围
当定义一个枚举变量时,其值可以为enum中定义的枚举变量,或者任意int类型的值。当然,超出enum取值范围的值没有实际意义。
输出结果:c1=0 c2=2 c3=6
而以下程序则编译不通过:
E:\B C\my_codes\CProgrammingAModernApproach>gcc testenum.c
testenum.c: In function `main':
testenum.c:9: error: `BJ' undeclared (first use in this function)
testenum.c:9: error: (Each undeclared identifier is reported only once
testenum.c:9: error: for each function it appears in.)
在系统内部,C语言会把枚举变量和常量作为整数来处理,默认情况下,编译器会把整数0、1、2、3……赋给特定枚举中的常量。如枚举city中,GZ、FS、SZ、DG分别被赋值0、1、2、3。
而枚举变量C1被保存为0,C2为3……
2、枚举值的取值范围
当定义一个枚举变量时,其值可以为enum中定义的枚举变量,或者任意int类型的值。当然,超出enum取值范围的值没有实际意义。
#include <stdio.h> int main(void){ enum city{GZ, FS, SZ, GD}; enum city c1, c2, c3; c1=GZ; c2=SZ; c3=6; printf("c1=%d\tc2=%d\tc3=%d",c1, c2, c3); return 0; }
输出结果:c1=0 c2=2 c3=6
而以下程序则编译不通过:
#include <stdio.h> int main(void){ enum city{GZ, FS, SZ, GD}; enum city c1, c2, c3; c1=GZ; c2=SZ; c3=BJ; printf("c1=%d\tc2=%d\tc3=%d",c1, c2, c3); return 0; }
E:\B C\my_codes\CProgrammingAModernApproach>gcc testenum.c
testenum.c: In function `main':
testenum.c:9: error: `BJ' undeclared (first use in this function)
testenum.c:9: error: (Each undeclared identifier is reported only once
testenum.c:9: error: for each function it appears in.)
相关文章推荐
- 使用异或加密数据
- 常用的位操作:置位、清零与测试
- C语言程序的内存分配方式
- C语言内存分配时间
- C语言声明数组变量时,在什么情况下,可不指定数组大小
- 查找数组中最大的2个数
- 指针与数组关联导致的一些现象
- Linux系统调用相关概念
- 文件复制函数的效率比较
- Linux系统常用目录操作函数
- errno的基本用法
- syslog()的基本用法
- 关于VMware虚拟机的上网
- opencv2对于读书笔记——二值化——thresholded功能
- 面试题7用两个栈实现队列
- 虚拟局域网
- 分享经验,UI菜鸟是怎样成为大牛的
- XML之命名空间的作用(xmlns)
- XML之命名空间的作用(xmlns)
- IIS DOS常用命令