Comment une déclaration de conflit avec lui-même?

C'est l'erreur que je reçois lorsque vous essayez de compiler un code qui utilise taucs (pas mon code):

.../taucs/src/taucs.h:554: error: conflicting declaration typedef struct taucs_ccs_matrix taucs_ccs_matrix
.../taucs/src/taucs.h:554: error: taucs_ccs_matrix has a previous declaration as typedef struct taucs_ccs_matrix taucs_ccs_matrix

wat? Il est en conflit avec lui-même?

Après je me suis pincé, j'ai créé un test en-tête et le mettre dans un conflit de définition, juste pour m'assurer que j'ai raison sur ce point:

Dans le fichier testit.h:

#include "somethingelse.h"

typedef struct
{
  int n;
} foobar;

Dans le fichier somethingelse.h:

typedef struct
{
  int n;
} foobar;

Bien sûr, j'obtiens:

testit.h:6: error: conflicting declaration typedef struct foobar foobar
somethingelse.h:4: error: foobar has a previous declaration as typedef struct foobar foobar

Ou si j'ai cela en testit.h:

typedef struct
{
  int n;
} foobar;

typedef struct
{
  int n;
} foobar;

testit.h:9: error: conflicting declaration typedef struct foobar foobar
testit.h:4: error: foobar has a previous declaration as typedef struct foobar foobar

Le numéro de la ligne est toujours différent, une déclaration peut pas entrer en conflit avec lui-même. Je n'ai pas l'obtenir. - On jamais vu cela?

OriginalL'auteur eeeeaaii | 2010-08-24