自定义数据类型
自定义数据类型:
结构、联合、枚举、类
内存对齐(默认是以数据类型最大的字节数对齐)
结构、类所有成员内存大小之和。- 联合
最大内存成员共享一段内存 - 枚举
和int型内存大小相同4个字节
自定义数据类型:成员列表按照内存大小顺序依次定义
练习代码
//内部对齐
struct MyStruct
{
int a;
char b;
short c;
char d;
};
//空自定义数据类型 其内存大小为1。
struct MyStruct1
{
};
union MyUnion //4个字节对齐
{
int n;
short m[3];
};
union MyUnion1
{
short n;
char c[2];
};
int main()
{
//定义一个联合的变量并初始化其第一个成员
MyUnion1 m = {0x1234};
cout << hex << (int)m.c[0] << endl;//34
cout << hex << (int)m.c[1] <<dec<< endl;//12
m.c[0] = 1;
m.c[1] = -1;
cout << m.n << endl;//-255
cout << sizeof(MyStruct) << endl;//12
cout << sizeof(MyStruct1) << endl;//1
cout << sizeof(MyUnion) << endl;//8
return 0;
}