C typedef指向func的指针,带有指向struct的参数指针

时间:2018-04-13 05:30:53

标签: c

我需要为一个函数定义一个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;

1 个答案:

答案 0 :(得分:4)

您可以使用struct的前向声明来执行此操作。

// Forward declaration of the struct
struct Task_t;
typedef void (*tFunc_t)(struct Task_t*);

您不需要使用pTask_t为函数指针定义typedef