(J'utilise Visual C++ 2008) J'ai toujours entendu que main() est requis pour renvoyer un entier, mais ici je n'ai pas mis return 0;
et et il compilé avec 0 erreurs et 0 avertissements! Dans la fenêtre de débogage, il indique que le programme s'est terminé avec le code 0. Si cette fonction est nommée autre chose que main(), le compilateur se plaint de dire que 'blah' doit retourner une valeur. Coller un return;
provoque également l'apparition de l'erreur. Mais en le laissant complètement, il compile bien.Pourquoi int main() {} compile?
#include <iostream>
using namespace std;
int main()
{
cout << "Hey look I'm supposed to return an int but I'm not gonna!\n";
}
Cela peut-il être un bogue dans VC++?
g ++ va vous lancer une erreur par défaut pour cela. la plupart des autres compilateurs font "return 0" à la place – wakingrufus
Les anciennes versions de GCC renvoyaient des erreurs dans certains cas si vous n'aviez pas d'instruction return dans main(). –
@wakingrufus, quelle version de g ++ utilisez-vous? Je reçois le bon comportement décrit par sparkes. – Kevin