Я объявила typedef void (*DoRunTimeChecks)();
Как сохранить указатель на функцию в структуре?
Как сохранить это как поле в структуре? Как его назначить? Как я могу назвать fn()?
Я объявила typedef void (*DoRunTimeChecks)();
Как сохранить указатель на функцию в структуре?
Как сохранить это как поле в структуре? Как его назначить? Как я могу назвать fn()?
Просто поместите его в, как и любой другой области:
struct example {
int x;
DoRunTimeChecks y;
};
void Function(void)
{
}
struct example anExample = { 12, Function };
Чтобы присвоить полю:
anExample.y = Function;
Для вызова функции:
anExample.y();
#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;
}
Примечание что в C, 'void fn()' и 'void fn (void)' не являются синонимами. –
+1 спасибо. Я уже попал в это – Mawg