根据:typedef TWellList* PWellList
转换下,那就是:TWellList * 类型,即 TWellList 的指针。
就是说,*(TWork.Work) 才是 TWellList ,
所以, (*(TWork.Work))[1] == TWellList[1] ==(struct TWellData * ).
1. container_of是Linux内核中实现的宏,不是C语言的标准函数。不能跨平台。
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr) \
(type *)( (char *)__mptr - offsetof(type,member) )})
2. typeof是GNU C的扩展,不是ISO标准中的函数。用gcc编译可以跨平台。
3. offsetof是C语言标准库中的宏,定义在头文件stddef.h中。可以跨平台。
warning: type of 'viod' defaults to 'int'警告: 'viod' 的默认类型是整型
可能 是由于你将 'void' 错输入为 'viod' ,编译器就把它当成了变量,并给出 “默认的数据类型是整型” 的警告。