如何在结构中存储函数指针?

时间:2012-03-25 05:02:36

标签: c function-pointers

我已宣布typedef void (*DoRunTimeChecks)();

如何将其存储为结构中的字段?我该如何分配?我如何调用fn()?

2 个答案:

答案 0 :(得分:18)

只需将其放入其他任何领域:

struct example {
   int x;
   DoRunTimeChecks y;
};

void Function(void)
{
}

struct example anExample = { 12, Function };

分配到字段:

anExample.y = Function;

调用该函数:

anExample.y();

答案 1 :(得分:5)

#include <stdio.h>

typedef void (*DoRunTimeChecks)();

struct func_struct {
    DoRunTimeChecks func;
};

void function()
{
    puts("hello");
}

int main()
{
    struct func_struct func_struct;
    func_struct.func = function;
    func_struct.func();
    return 0;
}