Как сохранить указатель функции в структуре?
Я объявил typedef void (*DoRunTimeChecks)();
Как сохранить это как поле в структуре? Как его назначить? Как я могу назвать fn()?
Ответы
Ответ 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;
}