首先linux中有如下定義
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
我的疑問是,為什么不直接用ptr-offsetof(type,member),而是先要另__mptr = (ptr),然后用__mptr - offsetof(type,member)。
uj5u.com熱心網友回復:
__mptr = (ptr)可用于型別檢測,如果傳入的ptr型別錯誤,可以在編譯階段直接檢測出來。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/266861.html
標籤:內核源代碼研究區
上一篇:請問這個是什么問題
