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

Maw*_*awg 14 c function-pointers

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

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

Car*_*rum 18

就像你在任何其他领域一样把它放进去:

struct example {
   int x;
   DoRunTimeChecks y;
};

void Function(void)
{
}

struct example anExample = { 12, Function };
Run Code Online (Sandbox Code Playgroud)

要分配到该字段:

anExample.y = Function;
Run Code Online (Sandbox Code Playgroud)

要调用该函数:

anExample.y();
Run Code Online (Sandbox Code Playgroud)


maj*_*jie 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;
}
Run Code Online (Sandbox Code Playgroud)