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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM