Avatar ·

何时在C++中使用extern:全局变量与代码分离

大家好!我正在学习C++,但一直搞不清楚`extern`关键字的用法。我读过文档,但还是感到困惑。 问题在于,我正在编写一个分成多个文件的小程序。我有`main.cpp`、`utils.cpp`和`utils.h`。我想在`utils.cpp`中声明一个全局变量,然后在`main.cpp`中使用它。但编译器报错“multiple definition”或“undefined reference”。我尝试了不同的方法,但都没有成功。 以下是我的代码示例: **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; } ``` 编译器报错:“multiple definition of `globalCounter`”。我明白这是因为我在头文件中定义了变量。