Ich habe D-Code gesehen, der void main
verwendet. Ist das legal? Wenn ja, ist auch die Rückgabe von void
( int
) legal? Warum ist das in der Sprache erlaubt?
Aus der D-Sprachreferenz
%Vor%main () Funktion
Bei Konsolenprogrammen dient main () als Einstiegspunkt. Es wird aufgerufen, nachdem alle Modulinitialisierungen ausgeführt wurden und nachdem alle Untests ausgeführt wurden. Nach der Rückkehr werden alle Moduldestruktoren ausgeführt. main () muss mit einem der folgenden Formate deklariert werden:
So void main
ist legal.
Aus den gleichen Dokumenten return statement Teil:
Eine Rückkehr beendet die aktuelle Funktion und liefert ihren Rückgabewert. Ausdruck ist erforderlich, wenn die Funktion einen Rückgabetyp angibt, der nicht ungültig ist. Der Ausdruck wird implizit in den Funktionsrückgabetyp
konvertiert
So scheint es, dass das Zurückgeben von etwas aus einer void-Funktion nicht explizit verboten ist (und dies in der Tat gut verarbeitet).
(Warum sollten Sie das trotzdem tun?)
Die folgenden Versionen der Funktion main()
sind zulässig:
Die void main
Versionen sind die gleichen wie die int main
Versionen, wenn sie immer 0 oder throw zurückgeben.
Tags und Links d