IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

conflicting types


Sujet :

C

  1. #1
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut conflicting types
    Bonjour,

    J'ai 2 erreurs:

    conflicting types for 'gestion_regles'
    previous implicit declaration of 'gestion_regles' was here

    j'ai noté dans le code où il me met ces erreurs. Pourquoi j'ai ces erreurs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    /****************************************************************/
    // application regle 5
    void regle5(mat_dyn *t,Tnom tvar,TABL *tabL,int *ligne,int colonne, PNOEUD ancetre)
    {
    int i=0,j=0,trouve=0,ligne2;
    PNOEUD nveau1,nveau2; 
    char lettre,signe;
    TABL *tabL2;
    mat_dyn t2;
     
    ligne2=(*ligne);
    tabL2=(TABL *)malloc(ligne2*sizeof(TABL));
    ini_matrice(&t2,*ligne,colonne);
     
    memcpy(&t2,t,ligne2*colonne*sizeof(composante));  //on fait une copie de la matrice t
    memcpy(tabL2,tabL,ligne2*sizeof(TABL));
     
    while(j<colonne && trouve==0)
       {
       while(i<(*ligne) && (*t)[adr_mrd(i,j,colonne)] ==0 )
          i++;
       if(i==(*ligne))
          {
          i=0; 
          j++;
          } 
       else
          trouve=1;  //sert a sortir de la boucle
       }
     
    if(trouve)
       {
       // gestion de a
     
       trouve=enl_a(t,1,j,tabL,ligne,colonne);                          
       caractere(trouve,tvar[j],&lettre,&signe);                      
     
       nveau1= ajout_arbre(*t,*ligne,lettre,signe, NULL, NULL);               
       ancetre->fils=nveau1;                
     
     
     
       gestion_regles(ancetre->fils,colonne,tvar,tabL);  //ERREUR: previous implicit declaration of 'gestion_regles' was here 
     
     
     
     
       // gestion de -a
     
       trouve=enl_a(&t2,-1,j,tabL2,&ligne2,colonne);                         
       caractere(trouve,tvar[j],&lettre,&signe);                     
     
       nveau2= ajout_arbre(t2,ligne2,lettre,signe, NULL, NULL);               
       ancetre->frere=nveau2;
       gestion_regles(ancetre->frere,colonne,tvar,tabL2);
     
       }
    }
     
    /****************************************************************/
    //gestion des regles
    void gestion_regles(PNOEUD ancetre, int colonne, Tnom tvar, TABL *tabL)
     
     
     
    {       //ERREUR : conflicting types for 'gestion_regles' 
     
     
     
    int ligne;
    mat_dyn Mmatrice,Mancetre;
     
    if( ancetre->arc!='\0' && ancetre->arc!='-')
       {
     
       Mancetre=ancetre->matrice;
       ligne=ancetre->ligne;
     
       ini_matrice(&Mmatrice,ligne,colonne);    
     
       // copie du contenu de la matrice tampon dans la matrice t
       if(memcpy(Mmatrice,Mancetre,ligne*colonne*sizeof(composante))==NULL)
           printf("pointeur null");     
     
       cpt_ligne(&Mmatrice,tabL, ligne, colonne);  
     
       if(regle3(&Mmatrice,tvar,tabL,&ligne,colonne,ancetre))
          gestion_regles(ancetre->fils,colonne,tvar,tabL);
     
       else if(regle4(&Mmatrice,tvar,tabL,&ligne,colonne,ancetre))
            gestion_regles(ancetre->fils,colonne,tvar,tabL);
     
       else 
          regle5(&Mmatrice,tvar,tabL,&ligne,colonne,ancetre);
     
      } 
    }

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Si ta fonction gestion_regles est censée être une fonction privées alors il faut la définir avant son utilisation donc le mieux est de la mettre au debut du fichier, celà dit, je ne vois pas de mot cle static !

    As-t-elle sa signature dans un header ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Problème:
    La fonction n'est pas déclarée.
    Conséquences:
    Quand il tombe dessus la première fois, il devrait te donner un warning "implicit declaration of gestion_regles". Et là, il suppose qu'elle renvoit un int (parce que c'était l'ancienne règle).
    Puis, quand il arrive sur la vraie, il s'aperçoit que celle-ci ne retourne pas un int, donc il y a conflit avec la déclaration "'implicite"...
    solution
    Déclarer la fonction avant de l'utiliser dans regle5
    (faire un prototype, quoi)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    Je vous remercie. J'ai fait son prototype et tout fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conflicting type error
    Par Rav3nL0g dans le forum Débuter
    Réponses: 4
    Dernier message: 06/02/2012, 15h24
  2. conflicting types !?
    Par XsaiddX dans le forum Débuter
    Réponses: 4
    Dernier message: 13/07/2009, 12h50
  3. Conflicting types et CreateFile()
    Par GodOfTrolls dans le forum Windows
    Réponses: 8
    Dernier message: 11/03/2009, 17h34
  4. pb de conflicting types for
    Par Fahmi06 dans le forum C
    Réponses: 1
    Dernier message: 26/12/2008, 14h26
  5. Conflicting types dans fonction déclarée
    Par Spikeuh dans le forum C
    Réponses: 8
    Dernier message: 22/06/2008, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo