Warum wird der Fehler beim Aufrufen der Funktion vor der Deklaration nicht angezeigt?

main()
{
    f();
}
int f( int i, float fl)
{
    printf("function");
}

Warum wird der obige Code in "C" erfolgreich ausgeführt und gedruckt?function wenn es einen Fehler melden sollte, alsf () wird aufgerufen, bevor es deklariert wird.

Wenn es erfolgreich in 'C' ausgeführt wird, warum dann nicht in 'C ++'? Wenn es in c ++ läuft, zeigt es:error: 'f' was not declared in this scope

Wenn der Compiler annimmt, dass eine nicht deklarierte Funktion ein int zurückgibt und eine nicht angegebene Anzahl von Argumenten akzeptiert, warum wird sie dann auch für die folgende Funktion erfolgreich ausgeführt (d. H., Wenn der zurückgebende Typ an zurückgegeben wird)Leere anstattint ?

void f (int i, float fl)

{

    printf("function");

}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage