Подтвердить что ты не робот

Как сохранить указатель функции в структуре?

Я объявил typedef void (*DoRunTimeChecks)();

Как сохранить это как поле в структуре? Как его назначить? Как я могу назвать fn()?

4b9b3361

Ответ 1

Просто введите его, как и в любое другое поле:

struct example {
   int x;
   DoRunTimeChecks y;
};

void Function(void)
{
}

struct example anExample = { 12, Function };

Чтобы назначить полю:

anExample.y = Function;

Чтобы вызвать функцию:

anExample.y();

Ответ 2

#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;
}