Ho dichiarato typedef void (*DoRunTimeChecks)();
Come posso memorizzare un puntatore a funzione in una struttura?
Come lo memorizzo come campo in una struttura? Come lo assegno? Come chiamo il fn()?
Ho dichiarato typedef void (*DoRunTimeChecks)();
Come posso memorizzare un puntatore a funzione in una struttura?
Come lo memorizzo come campo in una struttura? Come lo assegno? Come chiamo il fn()?
Basta mettere in come si farebbe con qualsiasi altro campo:
struct example {
int x;
DoRunTimeChecks y;
};
void Function(void)
{
}
struct example anExample = { 12, Function };
Per assegnare al campo:
anExample.y = Function;
per chiamare la funzione:
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 che, in C, 'void fn()' e 'void fn (void)' non sono sinonimi. –
+1 grazie. Mi sono già innamorato di questo – Mawg