Comment déclarer une structure dans un en-tête qui est à être utilisé par de multiples fichiers en c?

Si j'ai une source.c fichier avec une structure (struct):

struct a { 
    int i;
    struct b {
        int j;
    }
};

Comment cette structure peut être utilisée dans un autre fichier (c'est à dire func.c)?

Dois-je créer un nouveau fichier d'en-tête, déclarer la structure et incluez cet en-tête dans func.c?

Ou dois-je définir l'ensemble de la structure dans un fichier d'en-tête et de l'inclure dans les deux source.c et func.c? Comment peut-struct être déclaré extern dans les deux fichiers?

Dois-je typedef il? Si oui, comment?

  • Notez que la définition de la structure n'est pas valide C. Au minimum, il devrait être un point-virgule après l'accolade fermante pour struct b, mais alors votre structure a déclare un type qui n'est pas utilisé (vous devriez vous définissez un nom de membre, peut-être k, après l'intérieure accolade fermante et avant le point-virgule.
InformationsquelleAutor | 2008-10-23