C typedef 指向 func 的指针,参数指针指向结构

标签 c

我需要为一个函数定义一个typedef p*,其中参数为structp*

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/

相关文章:

c - 文件系统在程序运行期间转换为只读

c++ - 在 C++ 中的 #pragma 注释之前搜索可用的库?

c - 更新使用 "-Bsymbolic"链接器选项生成的 ELF 共享对象

c++ - 堆栈内存如何工作或函数变量如何在堆栈上分配和访问

c - 求时间复杂度

c - 距离传感器测距误差估计

c - OpenMP:单一的共享变量,等待构造

c - 限制结构体中的指针

c - 简单代码 C 中的段错误 SigSegv

c - 我如何处理这些 C 警告?