C++ 结构体内存对齐
来源:互联网 发布:淘宝卖家中心页面错乱 编辑:程序博客网 时间:2024/05/16 19:08
一、整体代码
01.cpp
#include<iostream> #include<stdio.h> using namespace std; #pragma pack(2) //编译器预设偏移值为2 struct Test { char a;//偏移为0,占位1 double b;//偏移为8和2中最小数,为2,占2-9 char c;//偏移为1和2中最小数,为1,占10,最后结构体大小为最大偏移值2的整数倍,为12。 }; //第一个成员与结构体变量的偏移值为0 //其他成员偏移取决于自身大小与编译器预设偏移值中较小的那个 //结构体大小是最大偏移值的整数倍 //0空1234567810空 int main(void) { cout<<sizeof(Test)<<endl;//运行结果为12 return 0; }
二、解释
请参见注释。
#pragma pack (n) 作用:C编译器将按照n个字节对齐。
#pragma pack () 作用:取消自定义字节对齐方式。
#pragma pack (push,1) 作用:是指把原来对齐方式设置压栈,并设新的对齐方式设置为一个字节对齐
#pragma pack(pop) 作用:恢复对齐状态
- c++-结构体内存对齐
- C结构体内存对齐
- C结构体内存对齐
- C 结构体内存对齐原则
- C/C++结构体内存对齐
- C语言中的结构体内存对齐
- C 结构体内存对齐原则
- C/C++结构体内存对齐
- C/C++结构体内存对齐
- C语言结构体内存对齐问题
- C语言结构体内存对齐
- C语言之结构体内存对齐
- C语言结构体内存对齐问题
- C语言结构体内存对齐法则
- c语言结构体内存对齐
- C 结构体内存对齐原则
- 结构体内存对齐
- 结构体内存对齐
- 单阳不破
- 常用定理
- 点滴成长记录
- 循环输出80个星星
- Html上<meta>的介绍
- C++ 结构体内存对齐
- android 在bitmap或者view上 添加渐变阴影
- [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解
- 画布canvas,表单选项,随机矩形和圆,文字图像表示
- 线性代数导论19——行列式公式和代数余子式
- Documentation_input_notifier.txt
- 今晚吃什么
- MFC框架程序中OnIdle的介绍
- C++ extern c 用法