void
-
Hallo!
Gibt es eigentlich einen Unterschied zwischen:
funktion (void) und
funktion ()
-
Ja, ersteres ist ein Prototyp (wenn du die Deklaration bzw. Definition sinnvoll vervollständigst), letzteres ergibt eine prototyplose Deklaration. Das bedeutet, wenn die Variante mit void aufgerufen wird, führt der Compiler eine Typprüfung der Argumentliste durch, du kannst sie also nur ohne Argumente aufrufen. Die Variante mit leeren Klammern dagegen existiert noch aus Kompatibilität zu dem C, das Kernighan&Ritchie damals erfunden haben. Der Compiler führt hier keine solche Prüfung durch, du kannst also beliebige Argumente übergeben.
Ach ja, das gilt natürlich nur für C. In C++ bedeutet beides das gleiche.
-
beim 2ten muss der compiler überlegen und sich dann denken das es ein und dasselbe ist
aber ansonsten kein unterschied da void für den kompiler bedeutat das nichts übergeben bzw erwartet wird