Avatar ·

Quand utiliser extern en C++ : variables globales et séparation du code

Bonjour, collègues ! J'apprends le C++ et je n'arrive pas à comprendre le mot-clé `extern`. J'ai lu la documentation, mais je suis toujours confus. Le problème est que j'écris un petit programme divisé en plusieurs fichiers. J'ai `main.cpp`, `utils.cpp` et `utils.h`. Je veux déclarer une variable globale dans `utils.cpp`, puis l'utiliser dans `main.cpp`. Le compilateur se plaint de "multiple definition" ou "undefined reference". J'ai essayé différentes approches, mais sans résultat. Voici un exemple de mon code : **utils.h:** ```cpp int globalCounter = 0; void incrementCounter(); ``` **utils.cpp:** ```cpp #include "utils.h" void incrementCounter() { globalCounter++; } ``` **main.cpp:** ```cpp #include "utils.h" #include int main() { incrementCounter(); std::cout << globalCounter << std::endl; return 0; } ``` Le compilateur donne l'erreur : "multiple definition of `globalCounter`". Je comprends que c'est parce que je définis la variable dans le fichier d'en-tête.