L'instruction 'return' et ses valeurs
Bonjour.
Je préviens tout de suite que ça sent la question très con :oops: :lol: Mon interrogation du jour vient de l'instruction return. Dans le désordre :
Code:
1 2 3 4 5 6 7 8 9 10
| int main(void)
{
printf("\nTest d'un non retour au lieu d'un int : %d",retourHasardeux());
return 0;
}
int retourHasardeux(void)
{
//NOP
} |
a t-il un comportement défini ?
Avec Codeblocks sous XP, ça me renvoit zéro.
EDIT : Pas de message à la compilation/édition des liens. --> en fait j'ai quand même un warning.
Code:
1 2 3 4 5 6 7 8 9 10
| int main(void)
{
printf("\nTest d'un non retour au lieu d'un int : %d",retourHasardeux());
return 0;
}
int retourHasardeux(void)
{
return;
} |
Même question en modifiant la fonction. J'observe le même comportement personnellement.
EDIT : et le message de warning est différent.
Code:
1 2 3 4
| void retourHasardeux(void)
{
return;
} |
Si j'ai un return dans la fonction, peut-elle encore avoir un retour de type void?
Et enfin pour terminer, est-ce que c'est mal de faire ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
type grosseFonction(type nom)
{
if(une condition)
{
return;
}
else
{
// faire plein de choses
return unTruc;
}
} |
J'entends dire que l'usage d'un return pour couper court à l'exécution d'une fonction n'est pas vraiment une règle de bon usage. Vos avis ?
Encore une fois merci pour vos réponses ? ;)