He declarado typedef void (*DoRunTimeChecks)();
¿Cómo puedo almacenar un puntero de función en una estructura?
¿Cómo puedo almacenar eso como campo en una estructura? ¿Cómo lo asigno? ¿Cómo llamo a fn()?
He declarado typedef void (*DoRunTimeChecks)();
¿Cómo puedo almacenar un puntero de función en una estructura?
¿Cómo puedo almacenar eso como campo en una estructura? ¿Cómo lo asigno? ¿Cómo llamo a fn()?
Sólo hay que poner en como lo haría con cualquier otro campo:
struct example {
int x;
DoRunTimeChecks y;
};
void Function(void)
{
}
struct example anExample = { 12, Function };
Para asignar al campo:
anExample.y = Function;
llamar a la función:
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;
}
Nota que, en C, 'void fn()' y 'void fn (void)' no son sinónimos. –
+1 gracias. Ya me caí en eso – Mawg