结构体内存对齐模式
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 };
相关文章推荐
- 结构体内存对齐模式
- Clean Code 读书笔记一
- CI框架如何连接两个数据库
- OJ刷题---猜算式
- HD1010 Tempter of the Bone
- OpenCSP开源程序解析之OPENCSP_M*CSP.cpp
- 揭密Oracle之七种武器二:DTrace语法:跟踪物理IO
- NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- 哈希(1) - 介绍
- Oracle 常见错误排查
- latex列表
- Spring4 Jar包详解
- Linux之路_15.6.05
- 【js】解压缩的问题
- RT-thread v2.0.1修正版
- XTUOJ 1205 Range
- “我爱淘”第二冲刺阶段Scrum站立会议6
- redis安装
- 揭密Oracle之 七种武器 第一章 搭建测试环境
- 迭代器(Iterator)的java.util.NoSuchElementException错误的改正