STM32
直播中

王玲

7年用户 1430经验值
私信 关注
[问答]

Saturday只是一个枚举元素啊,而today是一个枚举变量,为什么他俩所占的内存空间大小是一样的? [

           #include "stdio.h"
enum Season
{
    spring, summer=100, fall=96, winter ,winter1
};
typedef enum
{
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
Weekday;
void main()
{
   Weekday today ;
    printf("%d bytesn", sizeof(spring));

    printf("%d bytesn", sizeof( Saturday ));
    printf("%d bytes n", sizeof( today ));

}

1. sizeof( Saturday )的大小是4;
2.sizeof( today )的大小也是4;
Saturday只是一个枚举元素啊,而today是一个枚举变量,为什么他俩所占的内存空间大小是一样的? [/td]
以下内容为评论

回帖(1)

陈韵瑄

2024-5-10 09:53:55
***Saturday只是一个枚举元素啊,而today是一个枚举变量,为什么他俩所占的内存空间大小是一样的?
---比如
int a = 6;
在x86系统中,数字6占用4个字节,int是4个字节,变量a也是4个字节。这里可以把6理解为整形元素,a是一个整形变量。
枚举毕竟和一般变量不同,跟编译器相关。
如果使用keil,那么枚举的大小可能是1个字节,最大可以是4个字节,这要在编译器里面设置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分