Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours de M@teo sur les pointeurs

le premier return

Sujet résolu
    27 mai 2006 à 22:55:38

    'soir.

    Voila, en lisant le cour sur les pointeurs, dans l'un des premiers codes, il est marqué ceci :
    #include <stdio.h>
    #include <stdlib.h>

    /* Je mets le prototype en haut. Comme c'est un tout
    petit programme je ne le mets pas dans un .h, mais
    en temps normal (dans un vrai programme) j'aurais placé
    le prototype dans un fichier .h bien entendu ;o) */


    void decoupeMinutes(long heures, long minutes);

    int main(int argc, char *argv[])
    {
        long heures = 0, minutes = 90;

        /* On a une variable minutes qui vaut 90.
        Après appel de la fonction, je veux que ma variable
        "heures" vaille 1 et que ma variable "minutes" vaille 30 */


        decoupeMinutes(heures, minutes);

        printf("%ld heures et %ld minutes", heures, minutes);

        return 0;
    }

    void decoupeMinutes(long heures, long minutes)
    {
        heures = minutes / 60// 90 / 60 = 1
        minutes = minutes % 60; // 90 % 60 = 30 (rappelez-vous : modulo = reste de la division, "90 divisés par 60 font 1, et il reste 30";)
    }


    et en particulier ceci :
    return 0;


    Il aurait pas fallu mettre un 1?? o_O

    Avec un 0, le test est considéré comme faux...(c.f : "Résumé de nos tests : si on met un 0, le test est considéré comme faux, et si on met un 1 ou n'importe quel autre nombre, le test est vrai. ")
    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2006 à 23:10:05

      Il n'y a pas ici de test.
      Le return à la fin du main permet une fois que le programme est terminé de dire s'il s'est déroulé sans erreur.
      C'est donc logique de mettre return 0 erreurs.
      Dans le cas d'une erreur, elle serait associée a un code d'erreur ex 2 3 ou 203 si tu veux, qui permettrait de localiser l'endrois précis ou elle apparait.

      A noter tout de meme que ce problème n'a aucun rapport avec les pointeurs.

      A savoir quand meme que dans les script linux c'est l'inverse... mais à ma connaissance tous les languages utilisent la norme equivalente a celle du C.
      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2006 à 23:11:29

        Eh non c'est l'inverse 0 c'est bon et 1 (ou -1) c'est qu'il y a eu une erreur, et le return 0 c'est pour finir un programme, -1 ou 1 ferai echouer le programme!

        Relis ton cours ^^ fo pas bruler les etapes!( conseil d'un gars qui en ai passer par la).
        • Partager sur Facebook
        • Partager sur Twitter
          27 mai 2006 à 23:14:37

          ben j'ai fais un prog de BASE avec Code::Blocks, en remplacant le 0, du return, par un 1 et le prog marchait trés bien...

          edith : ah ouai c'est bon je viens de retrouver la partie du cours. Thx

          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2006 à 23:17:28

            Ce qu'il affirme n'est pas completement dénué de sens, mais c'est juste une histoire de conventions... car en effet dans un programme on pourra utiliser des tests du genre :

            if(fonction()){
            //Si la fonction s'est bien executé on retourne 1 donc TRUE
            }
            else{
            }

            EDIT : Oui bien sur ca marche... mais par convention on mettra 0 si tout s'est bien dérouler. Tu peux bien sur renvoyer n'importe quoi ou meme rien du tout si tu change ton main en :
            void main() qui marchera tout aussi bien. Apres a toi de voir si tu veux coder bien ou mal. =)
            • Partager sur Facebook
            • Partager sur Twitter
              27 mai 2006 à 23:20:34

              ok merci pour les infos ^^
              • Partager sur Facebook
              • Partager sur Twitter

              Cours de M@teo sur les pointeurs

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown