[C] simple question....

Résolu
m0n0-le-14r3 Messages postés 174 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
je vouslais savoir...
j'ai iun fichier avec plein de fonctions inside, et il setouve que ds les fonctions y'a des constantes :

<--- FONCTION 1 --->
void truc(...){
#define MAXN 5
}
------FONCTION 2 -----
void machin (){
#define MAXN 6
}

Quand j'compile , il me fait un :
getpsfDebut.c:836:1: warning: "MAXN" redefined
c normal ou pas ???

merci

--
-- je vis dans un rêve dont je ne me reveille jamais...--
<---- j adore ma voisine ;) ---->

3 réponses

  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut,
    Oui, en définissant une constante tu la défini pour le module, pas pour la fonction. Tu as plutôt intérêt à définir une variable dans ta fonction...
    0
  2. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    voile, tout est dit !
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    je dirai même plus, tu definie une macro, pas une constante, ce qui fait que jusqu' a indication contraire ton preprocessuer remplace MAXN par 6 dans le code avant de le compiler.
    Si tu veux eviter l'erreur, fait :
    #undef MAXN
    #define MAXN 6
    mais je te conseil quand même
    const int MAXN=6;
    0