/*我怀疑我学的是假枚举,对于枚举唯一感觉就是 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配合使用可以,但是 谁那么无聊
/*看在人类给我举例份上,我勉强觉得它有用好了,本质有点承认它有用了*/
久久说增强可读性,便于理解,,,,
- 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,
- 一个班每周有六门课程等等。
- 如果把这些量 说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。
- 在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚 举”类型的变量取值不能超过定义的范围。