32位編譯器4個位元組,64位編譯器8個位元組;
struct t;t *p;
32 位(4+4+4+4+8)
char a 1個位元組,為了滿足位元組對齊還需填充3個位元組(填充的3個位元組浪費,編譯器位元組對齊浪費也沒辦法);[0] - - - 4
int *d 4個位元組,正好滿足位元組對齊; [4] [5] [6] [7] 4
int b 4個位元組,正好滿足位元組對齊; [8] [9] [10] [11] 4
int c:16 2個位元組,為了滿足位元組對齊還需填充2個位元組;[12] [13] - - 4
double e 8個位元組(兩個4四個位元組),滿足位元組對齊; [16] [17] [18] [19]
[20] [21] [22] [23]
64位(8+8+8+8)
char a 1個位元組,為了滿足位元組對齊還需填充7個位元組;[0] - - - - - - - 8
int *d 4個位元組,為了滿足位元組對齊還需填充4個位元組; [8] [9] [10] [11] - - - - 8
int b 4個位元組,為了滿足位元組對齊還需填充4個位元組;[16] [17] [18] [19] - - - -
int c:16 2個位元組,因為只佔2個位元組,而上乙個位元組對齊中還有4個空的,所以這兩個合併後還要補充2個位元組 [16] [17] [18] [19] [20] [21] - - 8
double e 8個位元組,滿足位元組對齊;[24] [25] [26] [27] [28] [29] [30] [31] 8
這就是為什麼4個8而不是5個8 的原因;
32位和64位的理解
大家都知道現在流行的作業系統是32位和64位的,都知道32位作業系統能 認出 4g以內的記憶體而64位的 可以認出多記憶體 2的64次方byte 簡稱大b,還有一種是小b,1個byte由8個bit組成 但是為什麼會64位的能認到的記憶體就多呢?先看一下概念 32位和64位 cpu一次處理資料的能力是...
32位 和 64位系統區別
1.32位系統cpu一次可處理32位資料,即一次處理4個位元組。64位系統cpu一次可處理64位資料,即一次處理8個位元組。通俗一點說 32位,就相當於你擁有32個工人,每次能完成32個工人的工作量 64位,就相當於你擁有64個工人,每次能完成64個工人的工作量 總結 由32位系統過渡到64位系統,...
32 位和 64 位 Windows識別
32 位和 64 位 windows 全部顯示 32 位和 64 位版本 windows 之間有什麼區別?術語 32 位 和 64 位 是指計算機的處理器 也稱為 cpu 處理資訊的方式。64 位版本的 windows 可處理大量的隨機訪問記憶體 ram 其效率遠遠高於 32 位的系統。我如何知道我...