Typedef dans le fichier d'en-tête inclus plusieurs fois

En gros, j'ai défini et typedef ed cette structure:

typedef struct{
    void** elements;
    int numElements;
    int itemSize;
    int capacity;
    int dynamicElements;
}array;

pour laquelle j'ai écrit accompagnant la dynamique de la matrice de fonctions de manipulation. Cependant, j'ai un peu un problème. Dans différentes fonctions, je passe cette structure comme un argument. Afin de modulariser le code, j'ai besoin de prototypes de ces fonctions dans les fichiers d'en-tête (et dans le but de permettre à des arguments de type tableau, j'ai besoin d'include "tableau.h" dans ces fichiers d'en-tête).

Donc, à la suite notamment de l'ensemble de mes fichiers d'en-tête, le "tableau.h" fichier d'en-tête a été inclus plusieurs fois. Comme prévu, le type struct a été typedef ed plus d'une fois, et provoque des conflits.

Ma question est: comment puis-je avoir cette définition dans mon fichier d'en-tête, de sorte qu'elle ne se casse pas si inclus plusieurs fois?

J'ai eu cette question avant. Il n'est plus un problème en C11, lorsque cela est explicitement autorisé.

OriginalL'auteur BraedenP | 2012-03-04