Como usar extern para compartilhar variáveis entre arquivos em C++?
Olá! Sou um desenvolvedor C++ iniciante e me deparei com um problema: tenho um projeto composto por vários arquivos e preciso usar uma variável comum em diferentes arquivos .cpp. Tentei declarar a variável em um arquivo e usá-la em outro, mas o compilador gera o erro "undefined reference" ou "multiple definition".
Aqui está um exemplo simplificado: tenho o arquivo `main.cpp`:
```cpp
#include
#include "functions.h"
int main() {
global_var = 5;
print_var();
return 0;
}
```
O arquivo `functions.h`:
```cpp
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int global_var; // declaração da variável
void print_var();
#endif
```
E `functions.cpp`:
```cpp
#include
#include "functions.h"
void print_var() {
std::cout << "global_var = " << global_var << std::endl;
}
```
Ao tentar compilar isso (por exemplo, com `g++ main.cpp functions.cpp -o program`), recebo o erro "multiple definition of `global_var`". Ouvi diz
No answers yet.
Faça login para deixar uma resposta
Blogs
Erro mysql_fetch_array(): o parâmetro 1 deve ser resource — solução
Módulos em Rust: como dividir o código em vários arquivos sem enlouquecer
Algoritmos e Estruturas de Dados em Swift: Guia Prático para iOS
Rust em 2025: novos recursos que vão transformar seu código