前言:
当前兄弟们对“c语言enum定义”都比较关注,咱们都想要了解一些“c语言enum定义”的相关内容。那么小编同时在网络上汇集了一些对于“c语言enum定义””的相关文章,希望你们能喜欢,咱们一起来学习一下吧!定义
枚举是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语言##我要上头条##我要涨粉#
标签: #c语言enum定义