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