Bonjour.

Je préviens tout de suite que ça sent la question très con Mon interrogation du jour vient de l'instruction return. Dans le désordre :

Code Numero 1 : Sélectionner tout - Visualiser dans une fenêtre à part
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 Numéro 2 : Sélectionner tout - Visualiser dans une fenêtre à part
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 Numéro 3 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?