何时在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`”。我明白这是因为我在头文件中定义了变量。