(Estoy usando Visual C++ 2008) Siempre he oído que main() es requerido para devolver un número entero, pero aquí no puse return 0;
y compiló con 0 errores y 0 advertencias. En la ventana de depuración, dice que el programa ha salido con el código 0. Si esta función tiene otro nombre que no sea main(), el compilador se queja diciendo que 'blah' debe devolver un valor. Al aplicar un return;
, también aparece el error. Pero al dejarlo completamente fuera, compila muy bien.¿Por qué int main() {} compila?
#include <iostream>
using namespace std;
int main()
{
cout << "Hey look I'm supposed to return an int but I'm not gonna!\n";
}
¿Podría ser esto un error en VC++?
g ++ arrojará un error por defecto para hacer esto. la mayoría de los demás compiladores "devuelven 0" en su lugar – wakingrufus
Las versiones anteriores de GCC realmente devolvieron basura en algunos casos si no tenía una declaración de devolución en main(). –
@wakingrufus, ¿qué versión de g ++ estás usando? Obtengo el comportamiento correcto descrito por Sparkes. – Kevin