Como usar extern para compartilhar variáveis entre arquivos C++?
Olá! Comecei a estudar C++ e estou tentando dividir meu programa em vários arquivos. Tenho três arquivos: main.cpp, functions.cpp e functions.h. Em functions.h declarei uma variável global int global_counter = 0; e algumas funções. Em functions.cpp defini essas funções, que modificam global_counter. Em main.cpp incluo functions.h e tento usar global_counter, mas o compilador dá o erro "multiple definition of `global_counter`". Ouvi algo sobre a keyword extern, mas não entendo completamente como usá-la corretamente. Pode explicar com um exemplo simples? Aqui está meu código atual:\n\n// functions.h\n#ifndef FUNCTIONS_H\n#define FUNCTIONS_H\nint global_counter = 0;\nvoid increment();\nvoid print_counter();\n#endif\n\n// functions.cpp\n#include "functions.h"\n#include \nvoid increment() { global_counter++; }\nvoid print_counter() { std::cout << global_counter; }\n\n// main.cpp\n#include "functions.h"\nint main() {\n increment();\n print_counter();\n}