结构体的内存对齐
2015-10-01 14:50
351 查看
#include <stdio.h> #include <stdlib.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { struct Date { char a; int b; double c; char d; }; struct Date Date1 = { 'c', 1, 0.1, 'c' }; printf("*******输出地址*******\n"); printf("Date1 = %d\n", Date1); printf("&(Date1.a) = %d\n", &(Date1.a) ); // printf("&(Date1.b) = %d\n", &(Date1.b) ); // printf("&(Date1.c) = %d\n", &(Date1.c)); // printf("&(Date1.d) = %d\n", &(Date1.d)); // printf("&Date1+1 = %d\n", &Date1+1 ); // printf("(int*)&Date1 + 1 = %d\n", (int*)&Date1 + 1); // getchar(); return 0; }
在32位操作系统下Date占用24字节,因为第一个是char肯定得对齐1个字节的, int肯定对齐在4的位置,因为大小为4,c大小为8,d同理要补成8的整数,因为最大的成员大小是8
相关文章推荐
- C#操作XML学习之创建XML文件的同时新建根节点和子节点(多级子节点)
- kinetis的nfc调试
- Android关于Theme.AppCompat相关问题的深入分析
- zw版【转发·台湾nvp系列例程】HALCON ShapeTrans(Delphi)
- zendstudio安装
- root@kali:~# insmod /usb/serial/cp210x.ko :Unknown symbol in module
- BlockingQueue
- ConcurrentHashMap原理分析
- GPT分区基础知识及如何在GPT分区上安装WIN7
- Java相关术语 或者 组件命。
- 1015. Reversible Primes (20) 进制转换
- 动画特效之转场动画
- Why NoSQL?
- Myeclipse插件将wsdl生成java客户端代码
- Yahoo!团队:网站性能优化的35条黄金守则
- 屏蔽优酷客户端广告
- 数据结构:点之间的最短距离--Floyd算法
- 关于c#代码Convert.ToChar(null);出现异常,而object obj = null; Convert.ToChar(obj);//返回'\0'空字符问题详解
- 安卓(android)开发框架的说明2:基于Android Studio的安卓工程开发目录介绍
- Linux 命令 - mv: 移动或重命名文件