您的位置:首页 > 其它

结构体内存对齐模式

2015-06-05 23:21 225 查看
结构体内存对齐模式各种情况详解

#include <stdio.h>

struct A
{
int a; // 此时结构体占用4个字节
char b; // 此时结构体占用8个字节
char c; // 还是8个字节
char d; // 还是8个字节
char e; // 还是8个字节
char f; // 现在是12个字节
};

struct B
{
char a; // 1个字节
char b; // 2个字节
char c; // 3个字节
};

struct c
{
char name[10]; // 10个字节
char a; // 11个字节
// 对于char型数组来说,会把数组每个元素当作一个char类型
};

struct d
{
int name[10]; // 40个字节
char a; // 44个字节
char b; // 44个字节
};

struct e
{
char a; // 1个字节
int b; // 8个字节
char c; // 12个字节
// 这种写法内存的消耗相比A就会变大
};

struct f
{
char a; // 1
short b; // 4注意这里short占用的是剩下三个字节中的后两个
// 内存对齐总是以2的倍数对齐
char c; // 所以此时是6
int d; // 12
short e; // 16
char f; // 16
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: