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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章