1. 程式人生 > >記憶體對齊和補齊

記憶體對齊和補齊

 

對齊:是針對單個成員變數的;

補齊:是針對擺放的所有成員變數的整體而言要對齊;

//4位元組的對齊粒度

#pragma  pack(4)       // #pragma pack(n) /* n = 1, 2, 4, 8, 16 */

struct     aa{

      int     ma;

     char   arr[5];

     double  cc;

};

---4位元組int---||---5位元組arr---3位元組對齊||---8位元組double---4位元組補齊||

4 + 8位元組(5 + 3) + 8 + 4 = 24位元組

未完待續,抽時間繼續深挖......

 

參考文獻

1. https://blog.csdn.net/cyousui/article/details/17655051

2. https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E5%AF%B9%E9%BD%90