in c: func (void) vs. func () [Duplikat]
Frage
Diese Frage bereits eine Antwort hier:
Wenn eine C-Funktion akzeptiert keine Argumente, hat es mit einer „Lücke“ Parameter von den Sprachregeln deklariert / definiert werden? PC-Lint scheint Probleme zu haben, wenn es nichts in der Argument-Liste, und ich frage mich, ob es etwas in der Sprachsyntax ist, die ich nicht kenne.
Edit: Ich habe gerade ein Duplikat (? Back-Betrogene es kam zuerst) Frage,
Lösung void bedeutet, dass die Funktion keine Parameter übernehmen. Zum Beispiel: Dies ist nicht das gleiche wie die Definition , weil im zweiten Fall wird der Compiler nicht überprüfen, ob die Funktion wirklich ohne Argumente überhaupt genannt wird; stattdessen wird ein Funktionsaufruf mit beliebiger Anzahl von Argumenten ohne Warnungen akzeptiert wird (dies umgesetzt wird nur für die Kompatibilität mit der alten Stil Funktionsdefinition Syntax, Pre-ANSI). int init (void)
{
return 1;
}
int init ()
{
return 1;
}
Andere Tipps
IIRC func (void) in C eine Funktion deklarieren, die keine Parameter während func () nimmt deklariert eine Funktion, die eine beliebige Anzahl von Parametern nehmen. Ich glaube, das letztere ein Artefakt ist aus C vorge ANSI kommen.
Nach Wikipedia hier, wird die Deklaration func () erklärt im Wesentlichen die Funktion „ohne Informationen über die Parameter“.