我讀的東西像指針必須是字節對齊的。 我在一個典型的32位架構中的理解......所有的指針都是字節對齊的......不是?指針始終是字節對齊的
請確認。
可以有一個不是字節對齊的指針嗎?
基本上這是在tx描述符內存的硬件參考手冊中提到的。
我讀的東西像指針必須是字節對齊的。 我在一個典型的32位架構中的理解......所有的指針都是字節對齊的......不是?指針始終是字節對齊的
請確認。
可以有一個不是字節對齊的指針嗎?
基本上這是在tx描述符內存的硬件參考手冊中提到的。
是的,你不能解決任何數量的小於一個字節的內存。
如果指針或數字不是字節對齊的,它將在一個字節的中間開始。即一個字節的某些位將屬於一個指針,而其他位則屬於另一個指針。這很奇怪,並且在實踐中不會發生。
不會發生不能發生,因爲一個字節是最小的可尋址單位... – Spudd86 2010-06-15 17:53:30
在C中,指針指向一個對象和匕首;
唯一不是整數個字節的對象是位域。
C語言不允許您創建指向位字段的指針;這個代碼將導致一個編譯錯誤:「不能把位字段‘B’的地址」:
struct S { unsigned int a:4, b:4, c:4, d:3, e:1; };
int main (void) {
struct S s;
int *i = &s.b; // would point half a byte into s
return 0;
}
指針只能通過對象的指向的大小的整數遞增。
由於您不能創建一個指向大小小於一個字節的對象的指針,或者將指針增加一個小於一個字節,所以不能有小於一個字節對齊的指針。
†在C意義上,不是OO意義
+1對於匕首和/對於筆記 – ShinTakezou 2010-06-15 13:39:50
你的意思是字對齊嗎? – Sjoerd 2010-06-15 09:58:09
沒有...我只是詢問字節對齊。我瞭解字對齊 – kumar 2010-06-15 10:15:38
你確定它不是「N字節對齊」嗎? – 2010-06-15 10:33:06