Des erreurs de redéfinition .h fichiers

//list.h file
typedef struct _lnode{
    struct _lnode *next;
    size_t row;
    size_t column;
    short data;
}lnode;

typedef struct _llist{
    struct _lnode *head;
    size_t size;

}llist;

//matrix.h file
typedef struct _matrix{

    size_t width;
    size_t height;
    size_t k;

    int **data;

}matrix;

//smatrix.h file
#include "list.h"
#include "matrix.h"

typedef struct _smatrix{
    size_t width;
    size_t height;
    size_t k;

    llist data;
}smatrix;

smatrix* make_smatrix(matrix *m);

smatrix.h fichier comprend la liste.h de fichier et de la matrice.h fichiers. Si je comprend ces fichiers d'en-tête dans smatrix.h de fichier puis-je obtenir

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

Si j'ai pris ces heder fichiers notre de smatrix.h fichier puis l'erreur est allé loin, mais il se plaint de type matrice, dans le paramètre de la fonction. Je veux appeler des fonctions définies dans la liste.h et la matrice.h les fichiers dans smatrix.fichier c.. Que dois-je faire? Merci d'avance..

OriginalL'auteur codereviewanskquestions | 2011-03-25