Avatar ·

如何在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`”。我听说