La fonction return en programmation C

Résolu/Fermé
harris007 Messages postés 4 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 24 mars 2015 - 25 févr. 2015 à 00:51
harris007 Messages postés 4 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 24 mars 2015 - 26 févr. 2015 à 00:50
Bonsoir, svp la fonction return (0;1;...) returne ces valeurs a quoi? au compilateur?

2 réponses

[Dal] Messages postés 6044 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 23 janvier 2023 1 040
Modifié par [Dal] le 25/02/2015 à 10:55
Bonjour harris007,

return n'est pas une fonction, c'est une instruction, d'ailleurs elle s'utilise sans parenthèses.

tu demandes :

a fonction return (0;1;...) returne ces valeurs a quoi? au compilateur?

Le compilateur est juste un programme qui traduit le code source rédigé en langage C (un fichier texte) en un code objet exécutable par la machine (un fichier binaire). Lors de l'exécution du programme il n'intervient plus.

L'instruction return est donc traduite en code exécutable pour produire un effet dans le programme lors de l'exécution.

L'effet de l'instruction return est de terminer l'exécution de la fonction dans laquelle elle s'exécute et de redonner le contrôle à la fonction appelante.

Si l'instruction return est suivie d'une expression ou d'une valeur littérale, par exemple
return a + b;
ou
return 1;
, la valeur résultante est retournée à la fonction appelante lors de l'exécution, comme résultat de la fonction.

Le type de la valeur retournée doit correspondre au type que peut retourner la fonction selon la définition de son prototype. Si son prototype est void, l'instruction return ne doit pas comporter de valeur.

#include <stdio.h>

int somme(int a, int b)
{
    return a + b;
}

int main(void)
{
    int resultat;

    resultat = somme(1, 3);

    return 0;                                                                                                                                                                                                      
}


Enfin, lorsque return avec une valeur est utilisé dans la fonction main, son effet est de terminer le programme et de renvoyer à l'environnement d'exécution la valeur. Ici, la valeur de 0 est renvoyée (qui correspond d'ailleurs au prototype int de la fonction main), qui signifie "le programme s'est bien terminé".

Le destinataire de ce code de statut de fin de programme est le système d'exploitation, ou un programme qui lance ce programme.

Dal
5
harris007 Messages postés 4 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 24 mars 2015
26 févr. 2015 à 00:50
Merci Dal, c'est clair.
0