Visual C akzeptiert die falsche Anzahl von Argumenten?

Warum wird diese Kompilierung in Visual Studio ausgeführt:

void foo(int a) {}

int main() {
    foo(1,2);
}

Es gibt eine Warnung

source_file.c(4) : warning C4020: 'foo' : too many actual parameters

Aber warum ist es kein Fehler, wie es bei gcc / clang der Fall ist?

Ich kenne die Funktionsdefinitionen im K & R-Stil, aber das würde nur für @ geltefoo() was eine variable Anzahl von Argumenten annehmen würde.

Zitate aus dem Standard, die dies erlauben, wären sehr dankbar.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage