关于enum 在xilinx sdk中的大小

在xilinx sdk中使用的是gcc 

但是编译出来发现枚举类型并不是固定长度


				typedef enum{
					HHHHHa = 0,
					HHHHHb ,
					HHHHHc ,
					HHHHHd ,
					HHHHHe ,
					HHHHHf ,
					HHHHHg ,
					HHHHHh ,
					HHHHHi ,
					HHHHHj ,
					HHHHHk ,
					HHHHHl ,
					HHHHHm ,
					HHHHHHH  = 0xffffffff

				}testenum;

				typedef enum{
					HHHHHHa = 1,
					HHHHHHb ,
					HHHHHHc ,
					HHHHHHd ,
					HHHHHHe ,
					HHHHHHf ,
					HHHHHHg ,
					HHHHHHh ,
					HHHHHHi ,
					HHHHHHj ,
					HHHHHHk ,
					HHHHHHl ,
					HHHHHHm ,
					HHHHHHHH  = 0xffff

				}testenum2;

				typedef enum{
					aHHHHHHa = 1,
					aHHHHHHb ,
					aHHHHHHc ,
					aHHHHHHd ,
					aHHHHHHe ,
					aHHHHHHf ,
					aHHHHHHg ,
					aHHHHHHh ,
					aHHHHHHi ,
					aHHHHHHj ,
					aHHHHHHk ,
					aHHHHHHl ,
					aHHHHHHm ,
					aHHHHHHHH  = 0xff

				}testenum3;

				typedef enum{
					aaHHHHHHa = 1,
					aaHHHHHHb ,
					aaHHHHHHc ,
					aaaHHHHHHd ,
					aaHHHHHHe ,
					aaHHHHHHf ,
					aaHHHHHHg ,
					aaHHHHHHh ,
					aaHHHHHHi ,
					aaHHHHHHj ,
					aaHHHHHHk ,
					aaHHHHHHl ,
					aaHHHHHHm ,
					aaHHHHHHHH  = 0xffffffffffffffff

				}testenum4;

				printf("testenum=%d testenum2=%d  testenum3=%d testenum4=%d  \r\n",sizeof(testenum),sizeof(testenum2),sizeof(testenum3),sizeof(testenum4));
			

打印结果 为 :testenum=4 testenum2=2  testenum3=1 testenum4=8  

可以看出枚举类型随着最大值而改变长度.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值