Y compris C fichier d'en-tête avec beaucoup de variables globales

J'ai un fichier inclus avec+ de 100 variables globales. Il est utilisé dans une bibliothèque, mais certains programmes que je suis reliant la lib également besoin d'accéder à la globals.

La façon dont il a été construit:

//In one library .c file
#define Extern

//In the programs that use the globals
#define Extern extern

//In the .h file
Extern int a,b,c;

J'ai eu du mal à comprendre pourquoi l'original programmeur a fait que j'ai donc enlevé qui définissent Extern choses. Maintenant, je pense que je comprends la chose à propos de TU avec l'aide de stackoverflow:
Un,
Deux,
Trois.

Maintenant, je comprends que je dois définir les variables globales dans un .c fichier dans la bibliothèque et de l'utilisation extern dans l' .h fichier. Le problème est que je ne veux pas dupliquer le code.

Dois-je retourner à #define Extern vaudou?

  • Désolé de venir ces derniers temps mais le a accepté de répondre est la mauvaise approche. Frederik Slijkerman réponse est la bonne. Seules les déclarations dans .h les fichiers et les définitions .c fichiers. extern var est une déclaration, sans extern il s'agit d'une définition. Mettre la définition de la variable dans le module (c'est à dire .fichier c) est-il logique (du point de vue sémantique) de la partie de. À l'inverse, ne jamais utiliser un extern var dans un .c fichier.
InformationsquelleAutor Costi | 2010-05-19