Je trouve que le code suivant est accepté par Visual C++ 2008 et GCC 4.3 compilateurs:Est-ce que le code valide est invalide?
void foo()
{
}
void bar()
{
return foo();
}
Je suis un peu surpris qu'il compile. Est-ce une fonctionnalité de langue ou est-ce un bug dans les compilateurs? Que disent les normes C/C++ à ce propos?
Notez que de nombreux compilateurs qui peuvent compiler à la fois C et C++ offrent la règle C++ comme une extension non standard lors de la compilation du code C, bien que cela ne devrait pas être invoqué si vous voulez être portable. –