實現巨集offsetof

2021-09-24 15:19:14 字數 577 閱讀 8224

offsetof(型別,成員)

返回成員偏移量

具有函式形式的此巨集返回資料結構或聯合型別型別中成員成員的偏移值(以位元組為單位)。 返回的值是size_t型別的無符號整數值,以及指定成員與其結構開頭之間的位元組數。

定義乙個結構體指標s* a ; 未初始化的這個指標是乙個野指標(並沒有指向有效合法的記憶體空間), 但仍存在&(a->b) - a 的值是成員b的偏移值(該成員與其結構開頭之間的位元組數) , 如圖 :

我們可以驗證確實如此  

關於offsetof巨集

offsetof 巨集 這是在看書的時候遇到的,估計以後會用到,避免遺忘,先記下來吧。一般形式 define offsetof type,member size t type 0 member 說明 通過 type 0 將0位址強制轉換為type結構型別中的指標 通過 type 0 member 訪...

Offsetof巨集詳解

c語言面試的時候可能會考,這樣的巨集定義 define offsetof type,member size t type 0 member 函式作用 計算結構體成員的偏移,有些自有 裡也會手寫這樣的 實際上這個函式是標準實現的。實際上如果我們瀏覽 ansi c 編譯器的標標頭檔案,將在 stddef...

offsetof巨集定義分析

type是結構體型別,member是結構體中的乙個元素的元素名 define offsetof type,member int type 0 member 拆分為以下三個個步驟 1 type 0 將type型別結構體變數的首位址變為0 個人理解將其跟陣列比較 不一定正確 把0位址強制型別轉換成乙個指...