conflicting types for 'buid_hash_tab'
Le
unbewusst
gcc me donne cette erreur :
systemprofile.c:71: error: conflicting types for 'buid_hash_tab'
systemprofile.h:20: error: previous declaration of 'buid_hash_tab' was
here
alors que :
dans "systemprofile.c:71" :
int buid_hash_tab( char **keys,
char **values,
int *tab_len,
int *k_len,
int *v_len,
unsigned int *lines_nbr,
unsigned int *empty_lines_nbr,
struct n_list *sph,
Node *rpathes,
Node *epathes )
et dans "systemprofile.h:20" :
int buid_hash_tab( char **,
char **,
int *,
int *,
int *,
unsigned int *,
unsigned int *,
struct n_list *,
Node * ,
Node *);
donc dans l'en-tête la déclaration des paramètres est "anonyme" c'est
ce qui ne va pas ???
systemprofile.c:71: error: conflicting types for 'buid_hash_tab'
systemprofile.h:20: error: previous declaration of 'buid_hash_tab' was
here
alors que :
dans "systemprofile.c:71" :
int buid_hash_tab( char **keys,
char **values,
int *tab_len,
int *k_len,
int *v_len,
unsigned int *lines_nbr,
unsigned int *empty_lines_nbr,
struct n_list *sph,
Node *rpathes,
Node *epathes )
et dans "systemprofile.h:20" :
int buid_hash_tab( char **,
char **,
int *,
int *,
int *,
unsigned int *,
unsigned int *,
struct n_list *,
Node * ,
Node *);
donc dans l'en-tête la déclaration des paramètres est "anonyme" c'est
ce qui ne va pas ???

Poser une question


Vous avez peut-être un problème d'ordre d'include. Peut-être que quand
vous aurez résolu le warning de votre autre message - parce qu'il faut
le résoudre - ces erreurs disparaîtront.
Avez-vous bien:
#include "hash_tab.h"
dans systemprofile.h ?
Je ne suis pas très à l'aise avec ces histoire d'include. Mais je m'en
tiens à deux règles:
- mettre toujours des guards.
- inclure tout ce qui est nécessaire et uniquement ce qui est
nécessaire à chaque fichier.
Je ne suis pas sûr d'avoir raison, mais ici, je mettrais le #include
"hash_tab.h" à la fois dans systemprofile.h et systemprofile.c, je ne
compterais pas sur un #include "systemprofile.h" dans systemprofile.c
--
Pierre Maurette
Ben justement, une question.
Quelle est la méthode canonique pour ces "gards" ?
(à part le chapeau à poils)
--
#ifndef H_TOTO
#define H_TOTO
blabla...
#endif
--
AIX, c'est comme PL/I. Un nouveau patch à chaque nouveau besoin.
J'espère au moins qu'ils ont fini par virer superzap ;-)
--{ JKB renie le siècle dernier }--
ok merci pour cette clarification...