快捷搜索:  汽车  科技

c语言枚举数据类型的用法(你就懂C语言中的枚举)

c语言枚举数据类型的用法(你就懂C语言中的枚举)其中 enum 是C语言中的关键字,PeopleType是枚举名称。而None,Student,Teacher三个标识符分别被定义成了三个数值,0 1 2。那为什么要这样做呢?直接用0 1 2不好吗?如上所示,是不是看起来很简单? Student = 1 Teacher = 2};

c语言枚举数据类型的用法(你就懂C语言中的枚举)(1)

定义

枚举是C语言中的一种数据类型,它主要的功能是代替常量数字,可以让数字变得易读。

那,怎么定义一个枚举?

enum PeopleType {

None = 0

Student = 1

Teacher = 2

};

如上所示,是不是看起来很简单?

其中 enum 是C语言中的关键字,PeopleType是枚举名称。而None,Student,Teacher三个标识符分别被定义成了三个数值,0 1 2。那为什么要这样做呢?直接用0 1 2不好吗?

当然是为了方便我们程序员记忆。记住Student远比1来得更具体。

打个比方,现在我们要实现打印Student(学生)的数值,我们随时可能忘记1代表着它,但我们肯定记得它的单词是Student,那么:

printf("%d\n" Student);

即可实现功能。

c语言枚举数据类型的用法(你就懂C语言中的枚举)(2)

内部实现原理

编译器是如何将一个英语单词Student转为1的?

回答问题之前,我们先回顾一下C中的宏常量定义——

#define Student 1

#define Teacher 2

没错,编译器会自动将Student按照宏定义规则去替换成数值1

枚举通常都会被当成整型(int)做处理,而且它一般占用4个字节。

实例:

enum PeopleType {

None = 0

Student = 1

Teacher = 2

MaxPeopleType = 0x7FFFFFFFFFFFFUL

};

如果用sizeof(enum PeopleType),那么它占用字节是多少?

如果用打印MaxPeopleType,它的数值是多少?

c语言枚举数据类型的用法(你就懂C语言中的枚举)(3)

枚举的使用
  1. 作为类型、或是常量的定义,比如示例中的那样。
  2. 可以作整型变量的初始化。比如:int ptype = Student;
  3. 可以作函数传参。比如:call_function(Student);
  4. 可以作为switch中的选择项。

switch (ptype){

case Student: //学生

break;

case Teacher: //教师

break;

}

5. 可以作为ifelse if中的条件判断。

if (ptype == Student){

printf("我是学生!\n");

}

总结

看完后,关于C语言中的枚举,你学会了吗?

更多精彩,请关注我——技术同胞

#计算机##编程##C语言##我要上头条##我要涨粉#

猜您喜欢: