Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conflicting types

un char un differenr d'un char ?

Sujet résolu
    24 novembre 2007 à 10:58:57

    Bonjour je fais le TP sur le jeu du pendu mais un problème lorsque que compile
    Le jeu n'est absolument pas fini, mais je n'avancerai pas si je ne résout pas cette l'erreur
    (svp ne me motrer pas les autres erreurs qui ont rien à voir avec, celle-là, je les trouverais moi-même et j'apprendrai mieux)

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <ctype.h>
    4. #include <string.h>
    5. int main()
    6. {
    7.     char mot_cache[]="AVENEMENT";
    8.     char caractere_entre = 0;
    9.     int *lettre_trouvee = NULL;
    10.     long longueur_mot = 0,coups_restant = 10, i;
    11.     longueur_mot=strlen(mot_cache);
    12.     lettre_trouvee = malloc(longueur_mot * sizeof(int));
    13.     for(i=0;i<longueur_mot;i++)
    14.     {
    15.         lettre_trouvee[i] = 0;
    16.     }
    17.     while(coups_restant > 0);
    18.     {
    19.         for(i=0;i<longueur_mot;i++)
    20.         {
    21.             if(lettre_trouvee[i] == 0)
    22.             {
    23.                 printf("*");
    24.             }
    25.             else
    26.             {
    27.                 printf("%c", mot_cache[i]);
    28.             }
    29.         }
    30.         printf("\n");
    31.         if(coups_restant<=1)
    32.         {
    33.         printf("Vous avez encore droit a un unique coup !\n");
    34.         }
    35.         else
    36.         {
    37.         printf("Vous avez encore droit a %ld coups.\n", coups_restant);
    38.         }
    39.         printf("entrer une lettre :");
    40.         caractere_entre = entrer_caractere();
    41. //j'ai pas fini...
    42.     }
    43. }
    44. char entrer_caractere()
    45. {
    46.     char caractere = 0;
    47.     caractere = getchar();
    48.     caractere = toupper(caractere);
    49.     while (getchar() != '\n') ;
    50.     return caractere;


    et voila ce que code::blocks me dit:

    C++\Pendu\main.c: In function `main':
    C++\Pendu\main.c:45: warning: implicit declaration of function `entrer_caractere'
    C++\Pendu\main.c:48: warning: control reaches end of non-void function
    C++\Pendu\main.c:51: error: conflicting types for 'entrer_caractere'
    C++\Pendu\main.c:45: error: previous implicit declaration of 'entrer_caractere' was here
     === Build finished: 2 errors, 2 warnings ===


    Comment ça je déclare le type de mes variable implicitement? On déclare une variable ou pas ! comment j'en ai déclaré une sans vraiment le dire?

    Et puis même, vu qu'il s'agit uniquement de type 'char', je voit pas pourquoi il y a un conflit de types de caractères?
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2007 à 11:01:42

      * Tu ne retournes rien pour main() alors que tu dis qu'elle retourne int
      * Tu as oubliés l'{ à la dernière fonction
      * Cette même fonction n'a pas de prottotype

      Et il y en a d'autres ^^
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        24 novembre 2007 à 11:03:35

        étant donné que tu ne mets pas le prototype de ta fonction entrer_caractere, le compilateur suppose implicitement que celle ci renvoie un int d'ou le conflit de type. Met le prototype de ta fonction au dessus de main() et à la déclaration aussi.
        • Partager sur Facebook
        • Partager sur Twitter
          24 novembre 2007 à 11:06:43

          Ok, ca marche, merci !
          (je n'ai pas oublié mon } sur mon IDE, seulement sur ce forum, et j'ai pas fini la fct main donc elle ne retourne rien)
          • Partager sur Facebook
          • Partager sur Twitter

          Conflicting types

          × 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