- 此问题在此处已有答案**:
forward declaration of a struct in C?(3个答案)
5天前关闭。
我需要以下构造:
// Header file
typedef fc_t (*comdevCbackIsReady_t)(const comdev_t* const module);
typedef struct
{
comdevCbackIsReady_t cbIsReady;
} comdev_t;
这不会编译,因为comdevCbackIsReady_t
函数指针类型不知道comdev_t
结构类型。如果我交换这两个位置,那么结构将不知道func指针类型。我目前的方法是将comdevCbackIsReady_t
输入参数声明为void*
。这不是很清楚。有没有办法"向前声明"其中之一?
EDIT这不会编译:
// Header file
struct comdev_t;
typedef fc_t (*comdevCbackIsReady_t)(const comdev_t* const module);
typedef struct
{
comdevCbackIsReady_t cbIsReady;
} comdev_t;
对于comdevCbackIsReady_t
,comdev_t
仍然是未知类型。
1条答案
按热度按时间ubbxdtey1#
在这个函数指针的typedef声明中
使用的名字
comdev_t
还没有声明,所以编译器会发出一个错误。您可以只在结构声明中引入标记名,例如
或者