Funktion-Zeiger-Typen ohne Argumente?

Ich versuche zu erklären, einen Funktionszeiger zeigt auf eine Funktion zurückgibt, die den gleichen Typ. Ich ausgelassen die Argumente, die Typen in der Zeiger-Deklaration, um zu sehen, welche Fehler generiert. Aber das Programm wurde erfolgreich kompiliert und ausgeführt, ohne Frage.

Stimmt diese Erklärung? Sollten wir nicht die Argumente angeben, Typen?

#include <stdio.h>
#include <stdlib.h>

void add(int a, int b)
{
    printf("a + b = %d", a + b);
}

void (*pointer)() = &add;

int main()
{
    add(5, 5);
    return 0;
}

Ausgabe:

a + b = 10
  • Dies ist vollkommen legal K&R-C.
  • Beispiel-code nicht sinnvoll als ein Beispiel.
  • Warum ist das so?
  • Zeiger nicht verwendet worden sind, in einer Zuordnung ausgenommen. Durch die nicht wissen, verwenden Sie nicht sogar mit einem ungültigen Zeiger-auch wenn es? Es wurde nicht der Grund, warum die korrekte Ausgabe ist die der mindestens erreicht.
InformationsquelleAutor rullof | 2013-12-30
Schreibe einen Kommentar