天天看點

error: expected expression before 'struct'

list_entry(pos,struct _MAC_DATA,list); 編譯時出現如下錯誤:  error: expected expression before 'struct' 原因是: #define list_entry(ptr, type, member) ({ \ 

const typeof( ((type *)0)->member ) *__mptr = (ptr);\ 

(type *)( (char *)__mptr -  offsetof(type,member)  );\ 

})  #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 此宏沒有定義導緻list_entry()調用失敗! 解決方法: 包含頭檔案"unistd.h"即可。 其實真正聲明offsetof()是在stddef.h頭檔案中。是以最好的方法是直接包含此頭檔案。

來自 http://blog.chinaunix.net/uid-28253945-id-3405862.html

繼續閱讀