【发布时间】:2015-12-18 22:04:14
【问题描述】:
为什么这段代码不能编译?
#define container_of(ptr, type, field_name) ( \
(type *) ((char *) (ptr) - offsetof(type, field_name)))
错误
C:\list.h:37: 错误: ')' 标记之前的预期表达式 (type * )((char *) (ptr) - offsetof(type, field_name))) ^
【问题讨论】:
-
This compiles fine. 我们可能需要看看你在哪里使用宏。
-
宏定义后面有分号吗?
-
这里没看出什么问题,多发些代码试试。
-
也许你在反斜杠后面有一个空格,所以它没有转义换行符。
-
确认一下,是宏定义还是它的用法在第37行?