Advertisement

# pragma pack

阅读量:

用法

#pragma pack是C/C++里面设置字节对齐方式的预编译函数

解释

先看下面代码:

复制代码
 #include <iostream>

    
 using namespace std;
    
  
    
 class test {
    
 	char m1;
    
 	float m2;
    
 	char m3;
    
 };
    
 int main()
    
 {
    
 	test t;
    
 	cout << sizeof(t);
    
 }

这个类的大小是多少呢?

复制代码
    1+4+1=6?

运行结果如下

自然对齐

为什么会是12呢?其实类在分配空间的时候,会按一定方式进行对齐。

首先分析第一个成员m₁
它的大小设定为一字符节
此时自然对齐基准即定位一
在这种情况下该元素将被放置于起始位置

![](https://ad.itadn.com/c/weblog/blog-

全部评论 (0)

还没有任何评论哟~