C++ 中extern的作用
时间: 2023-11-14 09:15:40 浏览: 73
在C++中,使用 `extern` 关键字可以声明一个变量或函数是在其它文件中定义的。具体来说,`extern` 可以用于以下两种情况:
1. 声明变量
如果在一个C++文件中使用了一个在其它文件中定义的全局变量,需要使用 `extern` 来进行声明。这样编译器在编译时就知道这个变量是在其它文件中定义的,不会产生重复定义的错误。
例如,在 `file1.cpp` 中定义了一个全局变量 `g_var`,在 `file2.cpp` 中需要使用这个变量,就需要在 `file2.cpp` 中使用 `extern` 进行声明:
```c++
// file1.cpp
int g_var = 1;
// file2.cpp
extern int g_var; // 声明全局变量 g_var
int main() {
// 使用 g_var
return 0;
}
```
2. 声明函数
如果在一个C++文件中调用了一个在其它文件中定义的函数,需要使用 `extern` 来进行声明。这样编译器在编译时就知道这个函数是在其它文件中定义的,可以正确生成对该函数的调用。
例如,在 `file1.cpp` 中定义了一个函数 `func`,在 `file2.cpp` 中需要调用这个函数,就需要在 `file2.cpp` 中使用 `extern` 进行声明:
```c++
// file1.cpp
void func() {
// 函数定义
}
// file2.cpp
extern void func(); // 声明函数 func
int main() {
func(); // 调用函数 func
return 0;
}
```
需要注意的是,变量和函数的定义应该放在一个源文件中,而声明应该放在头文件中。这样可以避免重复定义和声明的错误。
阅读全文