C语言枚举类型怎么用?
展开全部
typedef只是给枚举类型起个别名,在图中代码根本没用处。
你图中的代码,是直接使用了枚举成员,枚举成员就是常量,直接使用常量没问题。
枚举型是集合,集合中的元素(枚举成员)是一些命名的整型常量,相当于多个#define语句(只不过枚举成员对应的数值可自增)
这个成员常量不同于结构成员变量名,是唯一的,你可以试试再定义一个枚举类型比如:
typedef enum
{
Monday=0,
Tuesday
}WeekTypedef2;
这样会报错,因为你之前定义的枚举类型中已经有同名成员了。换个名字就可以了,比如:
typedef enum
{
Monday2=0,
Tuesday2
}WeekTypedef2;
展开全部
枚举啊,就相当于一个宏定义,与#define Monday 0等效,而且在枚举里可以轻松修改数据,比宏定义操作更为方便,假如你宏定义一堆的变量,分别从1到100分配,那么你在枚举里只要把第一个变量赋值为1,后面的变量自动加1排序了,有100个,那么第100个的值就为100了,而且中间你可以改变某个变量的值,那么那个变量以下的值又会跟着这个值重新自增排列
追问
你好,谢谢你的回答,你说这个我知道,我意思是为什么不定义枚举变量,直接用枚举定义的值也可以?
追答
枚举就相当于宏定义,你直接enum{...};这样就行了,不过为了方便定义了哪些枚举才加个枚举名来分辨,不需要像结构体那样需要用结构体变量来引出结构体成员
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
枚举类型定义时,定义的是可以枚举的常量,常量符号的值在定义枚举时已经初始化完成。
有没有枚举变量都不影响已经存在的可枚举常量,
定义枚举变量将来也是要赋值某一枚举常量的。
比如:
WeekTypedef day=Monday;
有没有枚举变量都不影响已经存在的可枚举常量,
定义枚举变量将来也是要赋值某一枚举常量的。
比如:
WeekTypedef day=Monday;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
枚举类型的作用要相对小一些,它其实就是个int类型,但对程序的可读性贡献很大。
至于“结构体有什么用”,这绝对是个新手问题——因为结构体简直无所不用!简单的说,函数体现算法,而结构体则体现数据结构——算法、数据结构恰是程序设计的核心。无论你想用链表、队列、栈、树等数据结构,还是为了方便而把多个数据成员结合在一起(比如,你要存储考生信息,就可以设计一个结构,里面包含姓名、考号、分数等数据成员),都要用到结构体。建议楼主去看看别人写的程序(比如Linux内核,TCP/IP实现),你会发现里面到处都是结构。
至于“结构体有什么用”,这绝对是个新手问题——因为结构体简直无所不用!简单的说,函数体现算法,而结构体则体现数据结构——算法、数据结构恰是程序设计的核心。无论你想用链表、队列、栈、树等数据结构,还是为了方便而把多个数据成员结合在一起(比如,你要存储考生信息,就可以设计一个结构,里面包含姓名、考号、分数等数据成员),都要用到结构体。建议楼主去看看别人写的程序(比如Linux内核,TCP/IP实现),你会发现里面到处都是结构。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询