【发布时间】:2015-05-12 08:28:36
【问题描述】:
我想创建一个任务结构,其中包含一个指向回调的函数指针以执行所述任务。该任务包含参数,因此我想将结构的“this/self”指针传递给回调执行器函数。
这会产生循环依赖,我一直在尝试各种前向声明等,但似乎无法做到正确。我是否遗漏了一些使这成为不可能的事情,或者只是我的 C 语法魔法非常薄弱。把task*改成void*好像是作弊?
在 task.h 中:
// create a function pointer type signature for executing a task
typedef int (*executor) (task* self);
// create a task type
typedef struct {
executor exec; // the callback to execute the task
... // various data for the task
} task;
【问题讨论】:
-
下面的优秀答案。多谢你们。后续阅读:stackoverflow.com/questions/1675351/…
-
@Rohan 我宁愿关闭该链接作为此问题的副本,因为此问题中的“绒毛代码”较少。
标签: c struct function-pointers typedef self-reference