枚举类型的使用分两步:
1.定义一个特定的枚举类型
2.定义该枚举类型的变量并使用
以下学习内容均已经过实测:
1.定义枚举类型的值只能是整型常量,正数、负数和零都可以,但不可以是浮点数
2.对枚举类型做sizeof试验:
(1)我在stm32单片机上试验,也即ARM编译器上,枚举类型的存储大小按定义的值里面需要占内存最大的给,即1、2、4、8都有可能,遵循够用原则
(2)而在windows上试验,即GNU GCC编译器上,枚举类型的存储大小固定为4(但当定义中有超过4个字节大小的值时,存储大小变为8)
(3)无论哪个编译器,枚举类型的值最长只能为8个字节,更长的大小不接受
试验参考代码,可以自己改定义中的值大小去测结果:
enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
int main()
{
printf("sizeof(day):%d\\r\\n", sizeof(day));
printf("sizeof(enum DAY):%d\\r\\n", sizeof(enum DAY));
getchar();
}
3.如何用extern修饰枚举类型
(1)错误的修饰代码,在类型的定义前加extern将起不到任何作用,因为extern是用来修饰变量的。以下代码不会报错,但会警告,extern出现在这里起不到任何作用
extern enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
(2)正确的修饰代码,在枚举变量定义前加extern
extern enum DAY day;
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
ARM芯片
+关注
关注
1文章
125浏览量
21428 -
GNU
+关注
关注
0文章
143浏览量
17468 -
STM32单片机
+关注
关注
59文章
549浏览量
58598 -
gcc编译器
+关注
关注
0文章
78浏览量
3349
发布评论请先 登录
相关推荐
C语言必备知识枚举体
枚举类型是ANSI C新标准所增加的。如果一个变量只有几种可能的值,可以定义为枚举类型。所谓“枚举是指将变量的值一一列举出来,变量的值只限于
labview中的基本函数发生器应用时信号类型接线枚举有误
各位好,我是一个labview初学者,在学习利用基本函数发生器编写程序时,信号类型一连线接枚举控件,结果出现“枚举冲突”,不知是为何?请高手指导,多谢。上传了一个连线后的
发表于 03-15 20:36
labview小白求教枚举类型控件
学习labview还才3天,看的书是《labview宝典》,现在正好看到78页,关于“获取日期/时间字符串”函数,其中说到日期格式是枚举类型,但是我实际测试,给枚举控件插入了三个项,值
发表于 12-20 21:01
详细讲解c语言enum枚举类型
详细讲解C语言enum枚举类型在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓
发表于 12-21 23:22
枚举类型最后面增加项报错
各位大神:我的枚举类型RadioState,在最后面增加一项,之后程序中很多用到RadioState的地方报错,这个是什么原因造成的?下图是我没有改之前的枚举类型信息:下图是我添加了一
发表于 05-15 12:02
深入理解java枚举类型enum用法
; StringFRI = Fri; StringSAT = Sat; StringSUN = Sun; } 语法(定义) 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类
发表于 09-27 11:49
•0次下载
SystemVerilog中枚举类型的使用建议
SystemVerilog中枚举类型虽然属于一种“强类型”,但是枚举类型还是提供了一些“不正经”的用法可以实现一些很常见的功能,本文将示例一
Java枚举的特点及用法
在 Java 枚举出现之前,通常会使用常量类来表示一组固定的常量值,直到Java 1.5之后推出了枚举,那么枚举类型有哪些特点,它比常量类又好在哪里呢。 本文将分析一下
java switch case值能为枚举值吗
Java中的switch语句可以接受枚举类型的值作为参数。在Java中,枚举是一种特殊的数据类型,它定义了一个固定数量的命名常量。因此,可以将枚举
枚举有多大?c语言枚举end的作用是什么?
枚举有多大?c语言枚举end的作用是什么? 枚举在C语言中是一种常见的数据类型,用于定义一组相互关联的常量或者变量。它通常用于表示一系列可能的取值,使得程序更加易读和易维护。在C语言中
评论