union, struct, enum 的 大小区别
来源:互联网 发布:走进科学知乎 编辑:程序博客网 时间:2024/06/05 08:36
typedef enum
{
ANUnknown = 0,
ANShapeFile = 1,
ANSDEDatabase = 2,
ANFileDatabase = 3,
ANRasterFile = 4
}ANDataType;
sizeof(ANDataType) 为 4
======================================================
struct AAA
{
double d;
char ss;
char s;
};
sizeof(AAA) 为 结构中长度最大的变量的倍数(遵循内存对齐的原则),如上,double 的长度为 8, 则整个为 8*2 = 16, 因为 char 长度为1,两个char 为2,仍小于8,故按8计算,若有9个char变量,则其中 8个char 合计为 8,剩余一个不
足8 按 8字节计算。比如:
struct AAA
{
double d;
char s1;
char s2;
char s3;
char s4;
char s5;
char s6;
char s7;
char s8;
char s9;
};
按结构体中的变量的长度叠加,则大小为 8+(1+1+1+1+1+1+1+1)+1 = 17, 16 < 17 < 24, 则结构体的大小为 24
比如,
struct AAA
{
double d;
char s1;
int i;
};
按结构体中的变量的长度叠加,则大小为 8+1+4 = 13, 8 < 13 < 16, 则结构体的大小为 16
======================================================
union AAA
{
double d;
int i;
};
联合,则以定义中最大的数据类型的长度为准,此联合的 size 为 8
枚举 -- 实质上就是整形,所以 size 是 4
备注: union 与 struct 的大小与其内部定义的函数无关!!!
- union, struct, enum 的 大小区别
- union, struct, enum 的 大小区别
- union, struct, enum 的 大小区别
- struct union enum的区别
- struct/union/enum的区别
- struct/union/enum的区别
- enum struct union 大小 (zz)
- struct与union求大小的区别
- C的struct, union, enum
- 大小端区别、Union和Struct的内存大小
- struct和union的大小
- struct union enum
- enum struct union
- struct/enum/union用法
- <struct、union、enum>差异
- struct union enum
- 构造数据类型struct,共用体union,枚举类型enum,宏#define的区别
- C和C++中结构体(struct)、联合体(union)、枚举(enum)的区别
- 经典笔试面试题——宏macro
- Hibernate学习(四):session.save()
- datawindow的四个缓冲区
- Hibernate学习(五):session.update
- 写个文章为了积分啊!
- union, struct, enum 的 大小区别
- seo=更多页面的收录+页面文字的友好安排+转化率
- Hibernate学习(六):session.delete以及对象状态转换图
- 浏览器书签的变革遐想——关系型书签
- 写给想通过程序员转型为项目经理的人
- 经典笔试面试题——杂题(各种各样的小问题)
- Hibernate学习(七):session.flush与transaction.commit
- Hibernate学习(八):检索方式
- 正是装修进行时... 忽然发现自己很空..