Unter der Annahme, dass alle Funktionen den gleichen Rückgabetyp gemeinsam haben, ist es gültig, jedes durch einen "generischen" Funktionszeiger aufzurufen, der mit leeren Klammern deklariert ist (also keine Argumente angibt)? HierDarf man Funktionen mit unterschiedlichen Prototypen durch einen pseudo-generischen Funktionszeiger aufrufen?
ist ein Beispiel-Code, dass es zeigt:
#include <stdio.h>
void fun1(void)
{
printf("fun1\n");
}
void fun2(int a)
{
printf("fun2: %d\n", a);
}
void fun3(int a, int b)
{
printf("fun3: %d %d\n", a, b);
}
int main(void)
{
void (*pf)(); // pseudo-generic function pointer
pf = fun1;
pf();
pf = fun2;
pf(0);
pf = fun3;
pf(1, 2);
return 0;
}
Mögliche Duplikate von [Funktionszeiger ohne Argumente Typen?] (Http://stackoverflow.com/questions/20835534/funktion-pointer-without-arguments-types) –
Interessante Frage. Gültig wie in "Wird es kompiliert und wie erwartet ausgeführt?" Ja, sagt "Kompilieren mit" -Wall "funktioniert ohne Warnungen?" auf meinen Compilern ja :-) – Dilettant
Ja, keine Warnung auch im paranoiden Modus '-Wall -Wextra -pedantische -Wwandlung 'von GCC 4.9 ... @Dilettant – alk