C语言typeof用法报错,求指导

Python013

C语言typeof用法报错,求指导,第1张

Work.Wells 是个 PWellList 类型

根据: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' ,编译器就把它当成了变量,并给出 “默认的数据类型是整型” 的警告。