10
votes

Erreurs de redéfinition dans .h des fichiers

 redefinition of 'lnode'. redefinition of '_llist' and redefinition of '_matrix' errors.
c

0 commentaires

4 Réponses :


8
votes

Vous avez besoin Inclure les gardes dans vos fichiers d'en-tête.


0 commentaires

25
votes

Problème possible des inclusions multiples.

Essayez de protéger vos fichiers d'en-tête avec #Ifndef . C'est ici

liste de fichiers.h xxx

matrix.h xxx

Cela vous empêchera de vous aussi avoir des redéfinitions si vous avez une boucle dans les inclusions d'en-tête.


0 commentaires

1
votes

Vous incluez probablement smatrix.h et list.h dans un autre fichier. Vous devriez éviter cela. Le moyen habituel de faire est d'utiliser include les gardes .

Ce sont des macros que vous vérifiez avec #Ifdef au début du fichier (avec #endif à la fin), et #define eux à l'intérieur du #Ifdef ... #endif , assurant ainsi que même si vous incluez le même fichier plusieurs fois, le compilateur ne le lira qu'une fois, à la première fois, et saute tous les repose.


0 commentaires

2
votes

Eh bien de votre code posté Ce que je pense manquant, c'est au début de chaque * .h fichier: xxx

ou a xxx P> Si votre compilateur prend en charge.

Sans cela, si l'en-tête est inclus plusieurs fois de différentes sources, vous obtenez des erreurs concernant la redéfinition.


0 commentaires