Avatar ·

Quando usar extern em C++: variáveis globais e divisão de código

Olá, colegas! Estou estudando C++ e não consigo entender a keyword `extern`. Li a documentação, mas ainda fico confuso. O problema é que estou escrevendo um pequeno programa dividido em vários arquivos. Tenho `main.cpp`, `utils.cpp` e `utils.h`. Quero declarar uma variável global em `utils.cpp` e depois usá-la em `main.cpp`. O compilador reclama de "multiple definition" ou "undefined reference". Tentei diferentes abordagens, mas sem sucesso. Aqui está um exemplo do meu 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; } ``` O compilador dá o erro: "multiple definition of `globalCounter`". Entendo que isso acontece porque estou definindo a variável no header file.