c语言枚举数据类型的用法(你就懂C语言中的枚举)
c语言枚举数据类型的用法(你就懂C语言中的枚举)其中 enum 是C语言中的关键字,PeopleType是枚举名称。而None,Student,Teacher三个标识符分别被定义成了三个数值,0 1 2。那为什么要这样做呢?直接用0 1 2不好吗?如上所示,是不是看起来很简单? Student = 1 Teacher = 2};
定义枚举是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);
即可实现功能。
内部实现原理编译器是如何将一个英语单词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,它的数值是多少?
枚举的使用- 作为类型、或是常量的定义,比如示例中的那样。
- 可以作整型变量的初始化。比如:int ptype = Student;
- 可以作函数传参。比如:call_function(Student);
- 可以作为switch中的选择项。
switch (ptype){
case Student: //学生
break;
case Teacher: //教师
break;
}
5. 可以作为if或else if中的条件判断。
if (ptype == Student){
printf("我是学生!\n");
}
总结看完后,关于C语言中的枚举,你学会了吗?
更多精彩,请关注我——技术同胞
#计算机##编程##C语言##我要上头条##我要涨粉#