Perché questo pezzo di codice viene compilato?Rami condizionali
#include <iostream>
int foo(int x)
{
if(x == 10)
return x*10;
}
int main()
{
int a;
std::cin>>a;
std::cout<<foo(a)<<'\n';
}
Il compilatore non mi dovrebbe dare un errore come "non tutti i percorsi di codice restituisce un valore"? Cosa succede/restituisce la mia funzione quando x non è uguale a dieci?
Non strettamente correlato, ma può suscitare il tuo interesse: http://stackoverflow.com/questions/9653722/how-does-returning-values-from-a-function-work – Corbin
BTW: che cos'è il compilatore (in modo che Posso evitarlo in futuro)? –
@NicolBolas: non evitare il compilatore, evita la compilazione senza warn-flags! – bitmask