(Ich benutze Visual C++ 2008) Ich habe immer gehört, dass Main() ist erforderlich, um eine ganze Zahl zurück, aber hier habe ich nicht return 0;
und und kompiliert mit 0 Fehler und 0 Warnungen! Im Debug-Fenster wird angezeigt, dass das Programm mit Code 0 beendet wurde. Wenn diese Funktion anders als main() benannt ist, beschwert sich der Compiler und sagt, dass 'blah' einen Wert zurückgeben muss. Das Anhaften eines return;
verursacht auch den Fehler angezeigt. Aber es komplett auslassen, kompiliert es einfach gut.Warum kompiliert int main() {}?
#include <iostream>
using namespace std;
int main()
{
cout << "Hey look I'm supposed to return an int but I'm not gonna!\n";
}
Könnte dies ein Fehler in VC++ sein?
g ++ wird standardmäßig einen Fehler bei Ihnen auslösen. die meisten anderen Compiler geben "0 zurück" statt – wakingrufus
Ältere Versionen von GCC haben in einigen Fällen tatsächlich einen Fehler zurückgegeben, wenn Sie in main() keine return-Anweisung hatten. –
@wakingrufus, welche Version von g ++ verwendest du? Ich bekomme das richtige Verhalten, wie von Sparkes beschrieben. – Kevin