我需要为一个函数定义一个typedef p*
,其中参数为struct
的p*
。
typedef void (*tFunc_t)(pTask_t); // warning: parameter names (without types) in function declaration
typedef struct Task_t {
struct Task_t *Next;
tFunc_t Task;
}Task_t, *pTask_t;
由于函数是struct
的一部分,我该如何编写func typedef
以使编译器不再发出警告?
谢谢!
很好,谢谢@R Sahu!这工作顺利。
struct Task_t;
typedef void (*tFunc_t)(struct Task_t*);
typedef struct Task_t {
struct Task_t *Next;
tFunc_t Task;
}Task_t, *pTask_t;
最佳答案
您可以使用struct
的前向声明来做到这一点。
// Forward declaration of the struct
struct Task_t;
typedef void (*tFunc_t)(struct Task_t*);
您不需要使用 pTask_t
来定义函数指针的 typedef
。
关于C typedef 指向 func 的指针,参数指针指向结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49809907/