Ich habe typedef void (*DoRunTimeChecks)();
Wie kann ich einen Funktionszeiger in einer Struktur speichern?
erklärt Wie speicher ich das als ein Feld in einer Struktur? Wie weise ich es zu? Wie rufe ich die Fn()?
Ich habe typedef void (*DoRunTimeChecks)();
Wie kann ich einen Funktionszeiger in einer Struktur speichern?
erklärt Wie speicher ich das als ein Feld in einer Struktur? Wie weise ich es zu? Wie rufe ich die Fn()?
es Genau wie Sie setzen in jedes andere Feld:
struct example {
int x;
DoRunTimeChecks y;
};
void Function(void)
{
}
struct example anExample = { 12, Function };
auf dem Feld zuzuordnen:
anExample.y = Function;
die Funktion aufzurufen:
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;
}
Hinweis dass, in C, 'void fn()' und 'void fn (void)' nicht synonym sind. –
+1 danke. Da bin ich schon hingefallen – Mawg