如何在C++中使用extern在文件之间共享变量?
你好!我是一名C++初学者,遇到了一个问题:我有一个由多个文件组成的项目,需要在不同的.cpp文件中使用一个共享变量。我尝试在一个文件中声明变量并在另一个文件中使用它,但编译器报错“undefined reference”或“multiple definition”。
这是一个简化的例子:我有一个`main.cpp`文件:
```cpp
#include
#include "functions.h"
int main() {
global_var = 5;
print_var();
return 0;
}
```
`functions.h`文件:
```cpp
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int global_var; // 变量声明
void print_var();
#endif
```
以及`functions.cpp`文件:
```cpp
#include
#include "functions.h"
void print_var() {
std::cout << "global_var = " << global_var << std::endl;
}
```
当我尝试编译这个(例如,通过`g++ main.cpp functions.cpp -o program`)时,我得到了错误“multiple definition of `global_var`”。我听说