__align
__align 關鍵字指示編譯器在 n 位元組邊界上對齊變數。
__align 是乙個儲存類修飾符。它不影響函式的型別。
語法__align(n)
其中:n
是對齊邊界。
對於區域性變數,n 值可為 1、2、4 或 8。
對於全域性變數,n 可以具有最大為 2 的 0x80000000 次冪的任何值。
__align 關鍵字緊靠變數名稱前面放置。
用法如果宣告的變數的常規對齊邊界小於 n,__align(n) 是非常有用的。八字節對齊方式可以顯著提高 vfp 指令的效能。
可以將 __align 與 extern 和 static 一起使用。
限制由於 __align 是儲存類修飾符,因此不能將其用於:
型別,包括 typedef 和結構定義
函式引數。
只能進行過對齊。也就是說,可以將兩個位元組的物件按 4 個位元組對齊,而不能將 4 個位元組的物件按兩個位元組對齊。
示例__align(8) char buffer[128]; // buffer starts on eight-byte boundary
void foo(void)
__align(16) int i; // permitted as a global variable.
關於記憶體對齊
資料傳送到網路板的資料報大小根本不是實際控制數 據包的大小 這時我才想起乙個人,stanley b.lippman,他寫的那 一本書 inside object modale 曾經提過這樣的事 情,編譯器為了提高cpu的效率,會對struct 的結構進行優化,利用sizeof 可以得出不同的計算機上...
關於記憶體對齊
早上看了乙個貼的面試題,struct st int i short s char c sizeof struct st 是多少?int 4,short 2,char 1,但是sizeof st 是8。這個就是記憶體對齊 再來看個例子 struct strt1 strt1 s1 假設s1.c1位址為0...
關於記憶體對齊
資料傳送到網路板的資料報大小根本不是實際控制資料報的大小 這時我才想起乙個人,stanley b.lippman,他寫的那一本書 inside object modale 曾經提過這樣的事情,編譯器為了提高cpu的效率,會對struct 的結構進行優化,利用sizeof 可以得出不同的計算機上對 s...