[C] simple question....

Résolu
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. Contributeur
    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
    1. Contributeur
      voile, tout est dit !
      0
      1. Contributeur
        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