自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理
探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制
Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
在众多高级编程语言中随处可见枚举的身影,在本小节中将介绍C语言的枚举。请看如下示例:
#include <stdio.h>
#include <stdlib.h>
enum animal {Dog,Cat,Monkey,Invaild};
void dog(void)
{
puts("狗在叫");
}
void cat(void)
{
puts("猫在叫");
}
void monkey(void)
{
puts("猴在叫");
}
enum animal selectAnimal(void)
{
int temp;
do
{
printf("请选择动物 0代表狗 1代表猫 2代表猴:");
scanf("%d",&temp);
}while(temp<Dog||temp>Invaild);
return temp;
}
int main()
{
enum animal cuteAnimal;
do
{
cuteAnimal=selectAnimal();
switch(cuteAnimal)
{
case Dog:
dog();
break;
case Cat:
cat();
break;
case Monkey:
monkey();
break;
default:
puts("您的输入有误");
break;
}
}while(cuteAnimal!=Invaild);
return 0;
}
代码要点解析如下:
-
声明枚举类型,请参见代码第3行。
利用代码enum animal {Dog,Cat,Monkey,Invaild};
声明了枚举类型。其中animal是枚举名;Dog,Cat,Monkey,Invaild是枚举常量,枚举常量在默认情况下从左往右依次赋值为0,1,2,3,4…在此,请务必注意:枚举名并不是类型名!也就是说,类型名不是animal而是enum animal。 -
声明枚举变量,请参见代码第34行。
利用代码enum animal cuteAnimal;
声明了enum animal类型的变量cuteAnimal。平常我们可能这样声明一个int类型的变量:int x ; 但是在枚举类型类型中我们应该这样声明:enum animal cuteAnimal,因为它的类型是enum animal -
在声明枚举类型时可为枚举常量设定指定的值,例如:
enum month{January=1,February,March,April,May,June,July,August,September,October,November,December};
在此将January的值指定为1,那么其后的值依次在前者的基础上加1 -
在声明枚举时,枚举名可以省略。例如,刚才的示例可以写成enum {January=1,February,…,December}