自定义类型枚举(下)

简介: 自定义类型枚举

我们可以看到这里并没有报错,但是我们把文件后缀改为cpp再试试

因为我们赋的数字其实是整形类型,而变量是枚举类型,因为c语言要求没那么严格,但是换成c++后要求严格了就会报错

当然在声明枚举类型的时候是可以赋初值的

enum Color//颜⾊
{
  RED = 2,
  GREEN = 4,
  BLUE = 8
};

扩展

不知道各位有没有想过枚举常量的内存大小是多少?

我们在之前又说过枚举常量括号中的类型默认从0开始,依次递增1

每次对枚举变量进行赋值也只有括号中的那几种可能中的其中一种,因此枚举变量只代表着括号中的一个成员

括号中的成员取值既然是从0开始,依次增加1,说明这些数字的大小和括号中成员的大小是一样的,那我们就可以大胆推测这些数字的大小是4个字节,也就是整形类型的大小.

枚举类型的优点

我们可以使用 #define 定义常量,为什么非要使用枚举?

(因为#define 会直接将标识号给替换)

我们举个例子

这里会报错,原因就是我们将里面的成员直接替换成了数字

枚举的优点

  1. 增加代码的可读性和可维护性
  2. 枚举与#define定义的标识符(没有类型)比较枚举有类型检查,更加严谨
  3. 便于调试,预处理阶段会删除 #define 定义的符号
  4. 使用方便,一次可以定义多个常量
  5. 枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用
目录
相关文章
|
2天前
|
存储 Linux C++
自定义类型讲解
自定义类型讲解
60 0
|
2天前
|
存储 C语言
自定义类型:联合体和枚举
联合体类型,联合体的大小计算,联合体的实际应用,练习:判断大小端,枚举类型,枚举类型的声明:枚举类型的优点,枚举类型的实际案例:
|
7月前
|
存储 Swift 索引
28 如何为类、结构体以及枚举添加属性
如何为类、结构体以及枚举添加属性
45 0
|
2天前
|
编译器 测试技术 C语言
详解自定义类型:枚举与联合体!
详解自定义类型:枚举与联合体!
|
6月前
自定义类型枚举(上)
自定义类型枚举
21 0
|
9月前
自定义类型——枚举
自定义类型——枚举
|
9月前
|
存储 编译器 C语言
自定义类型详解 2
自定义类型详解
|
10月前
|
编译器 Linux C语言
一文带你玩转自定义类型
一文带你玩转自定义类型
56 0
|
10月前
|
编译器
自定义类型上
我们之前学过很多种类型,有int、char、float、double等等,这些都是属于既定类型,那么自定义类型顾名思义就是可以由你自己来定义的类型,比如我们接下来要讲的结构体、联合体、枚举都属于自定义类型。
|
10月前
|
存储 编译器 Linux
自定义类型:结构体、枚举、联合体
自定义类型:结构体、枚举、联合体