我需要在 C 中定义一个结构和一个回调函数类型,如下所示:
typedef void (*callback)(struct XYZ* p);
struct {
int a;
int b;
callback cb;
} XYZ;
现在这段代码将无法编译,因为每个定义都需要另一个。我的意思是,如果回调定义首先出现,它将无法编译,因为它需要定义结构。同样,如果先定义结构,则需要定义回调。也许这是一个愚蠢的问题,但有没有一种干净的方法来解决这些问题?
目前我的想法是使用 void * 作为回调参数,并将其类型转换为回调内部的 struct XYZ 。有任何想法吗?