¿Por qué compila este fragmento de código?Sucursales condicional
#include <iostream>
int foo(int x)
{
if(x == 10)
return x*10;
}
int main()
{
int a;
std::cin>>a;
std::cout<<foo(a)<<'\n';
}
El compilador no me debe dar un error como "no todas las rutas de código devuelve un valor"? ¿Qué sucede/devuelve mi función cuando x no es igual a diez?
No estrictamente relacionado, pero puede despertar su interés: http://stackoverflow.com/questions/9653722/how-does-returning-values-from-a-function-work – Corbin
BTW: qué compilador es esto (de modo que Puedo evitarlo en el futuro)? –
@NicolBolas: ¡No evite el compilador, evite compilar sin warn-flags! – bitmask