2018-5-21关于c里枚举 没意思,不好玩 还有UB系列

48 篇文章 0 订阅
15 篇文章 0 订阅

/*我怀疑我学的是假枚举,对于枚举唯一感觉就是 enum sm { sm1,sm2,sm3}这样子的。在我眼里这个东西好像并没有什么用属于和共用体union一样的东西,边看别人博客边写代码边实验的我帮你们扫雷,最近发现有些博客是错的或者不全面,作为小白的我很不喜欢,最讨厌错误的东西了,(我可以写错误的,别人不可以),总是觉得这东西不好玩,不好玩,还没有可变参数好玩*/

首先枚举的声明和定义:

enum enumtype {la,la1,la2,la3,la4};

声明enumType为新的数据类型,称为枚举(enumeration);

声明la,la1等为符号常量,通常称之为枚举量代表的值是整形,其值默认分别为0-5,我们还可以赋特定值,所以输出和输入枚举类型的时候都需要按照整形来处理。接着利用新的枚举类型enumType声明这种类型的变量:enumType wa就像使用基本变量类型int声明变量一样,如 int a;也可以在定义枚举类型时定义枚举变量enum enumType {ba,la,bala,}wa;

#include<stdio.h>
    enum smg{lala=1,la1,waawa} s;//变量s是枚举类型enum smg;

int main()
{
    enum wa {w1,ha,la,sz}; //最普通正常的一种枚举,定义一个枚举类型wa
    //wa w;//会报错!申明一个枚举变量 前面一定要记得加enum 不然报错在gcc还有codeblocks上亲测了。
    enum wa w;//就ojbk 啦,不会报错,我也觉得多写一个enum很烦简直是脑子有毛病,下一个
    enum
    {
        saturday,
        sunday ,
        monday,
        tuesday,
        wednesday,
        thursday,
        friday
    } workday; //第二种枚举变量定义申明同时进行,
   // enum smg{lala=1,la1,waawa} s;//变量s是枚举类型enum smg;
    enum smgl{ba,lalal,} s1,daa;
    enum BOOLEAN { true,false } end_flag, match_flag; //定义枚举类型并声明了两个枚举型变量 true值是0,,并没有什么
//枚举量枚举类型,枚举变量最好名字不一样,用编译器还有gcc试了试,枚举量是时而可以一样时而不可以,其他两个会报错还是以防万一比较好,至于为什么我也不知道,有空再研究,也许看看汇编就可以
    printf("%d ",false);//1 暂时没有发现申明一个变量有什么用,不申明直接输出ha,la,也是有值还很正常,
    printf("%d",saturday);
    //枚举赋值,还是没有觉得有什么用,,还是写写;
    //s=lal;
    //enum smg s2=lala;
    s2=lal;//codeblocks竟然会报错垃圾。 gcc 上面是允许的
    printf("%d",s2);//正常是2,但是13.12版codeblocks会报错
}
这东西无聊的很,,,再见,据说和switch配合使用可以,但是  谁那么无聊


/*看在人类给我举例份上,我勉强觉得它有用好了,本质有点承认它有用了*/

久久说增强可读性,便于理解,,,,

  1. 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,  
  2. 一个班每周有六门课程等等。  
  3. 如果把这些量 说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。  
  4. 在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚 举”类型的变量取值不能超过定义的范围。
还是       ,,,的东西。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值