相关疑难解决方法(0)

如何在struct中正确定义一个函数指针,它将struct作为指针?

我有一个带回调函数的结构,回调函数需要一个指向结构的指针才能进行操作.如何正确定义这些元素,以便在没有警告的情况下进行编译?

typedef struct {

    // some fields required for processing...

    int (*doAction)(struct pr_PendingResponseItem *pr);
} pr_PendingResponseItem;
Run Code Online (Sandbox Code Playgroud)

如果我删除pr参数上的"struct"属性,我会收到错误.如果我留下它,我会收到一个警告:"它的范围只是这个定义或声明,这可能不是你想要的"

这一切都有效,但我想知道定义这种结构的正确方法.

另外相关的是定义自引用结构:

typedef struct LinkedItem_ {
    LinkedItem_ * prev;
    LinkedItem_ * next;
    void * data;
} LinkedItem;
Run Code Online (Sandbox Code Playgroud)

(我认为这是正确的,但如果与问题相关,则欢迎其他想法.)

c struct function-pointers

8
推荐指数
2
解决办法
6063
查看次数

标签 统计

c ×1

function-pointers ×1

struct ×1