Avatar ·

Cuándo usar extern en C++: variables globales y división de código

¡Hola, colegas! Estoy aprendiendo C++ y no logro entender la palabra clave `extern`. Leí la documentación, pero aún me confundo. El caso es que estoy escribiendo un programa pequeño que está dividido en varios archivos. Tengo `main.cpp`, `utils.cpp` y `utils.h`. Quiero declarar una variable global en `utils.cpp` y luego usarla en `main.cpp`. El compilador se queja de "multiple definition" o "undefined reference". Probé diferentes opciones, pero sin éxito. Aquí hay un ejemplo de mi código: **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; } ``` El compilador da un error: "multiple definition of `globalCounter`". Entiendo que esto se debe a que defino la variable en el archivo de encabezado.