C语言自学完备手册(20)——枚举

版权声明: https://blog.csdn.net/lfdfhl/article/details/82894146

自定义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)— 使用指南


版权声明


在众多高级编程语言中随处可见枚举的身影,在本小节中将介绍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}

猜你喜欢

转载自blog.csdn.net/lfdfhl/article/details/82894146