我需要为一个函数定义一个typedef p*
,其中p*
的参数为struct
。
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;
答案 0 :(得分:4)
您可以使用struct
的前向声明来执行此操作。
// Forward declaration of the struct
struct Task_t;
typedef void (*tFunc_t)(struct Task_t*);
您不需要使用pTask_t
为函数指针定义typedef
。