C/C++之内存对齐
生活随笔
收集整理的這篇文章主要介紹了
C/C++之内存对齐
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、什么是內存對齊
計算機系統對基本類型數據在內存中放的位置做了限制,它們會要求這些數的首地址是一個數(一般為4和8)的整數倍,我們看下結構體的大小 #include <stdio.h> struct A {char a;int b; };int main() {printf("size of struct A is %d\n", sizeof(struct A));return 0; }結果: 1111deMacBook-Pro:digui a1111$ ./sizeof size of struct A is 8
結果是8,不是5,是由于內存對齊導致 1:a 2 3 4 5:b 6 7 8
2、為什么要內存對齊
犧牲了空間,加快cpu尋址速度,加快讀取內存數據速度。
內存是以字節為單位,但處理器不是以字節塊來存取,一般用雙字節,四字節,8字節,16字節,或者32
總結
以上是生活随笔為你收集整理的C/C++之内存对齐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归和非递归实现规律函数
- 下一篇: C++之greater和less