在C或C++编程语言中,`extern` 关键字通常用于以下几种情况:
1. 声明外部变量:当你在函数或程序的其他部分使用一个在其他地方定义的变量时,你需要使用 `extern` 关键字来声明这个变量。这样做可以告诉编译器该变量在其他地方定义。
```c
extern int externalVar; // 声明一个外部变量
```
2. 声明外部函数:当你在一个文件中声明一个在其他文件中定义的函数时,你需要使用 `extern` 关键字。
```c
extern void externalFunction(); // 声明一个外部函数
```
3. 声明外部类型:当你使用 `typedef` 在其他文件中定义了一个类型,并在另一个文件中使用它时,你需要使用 `extern` 关键字。
```c
extern typedef int MyInteger; // 声明一个外部类型
```
4. 声明静态库中的函数:如果你使用的是静态库,并且想要在其他文件中调用静态库中的函数,你需要使用 `extern` 关键字。
5. 声明全局变量和函数的可见性:使用 `extern` 关键字可以指定变量或函数的可见性为全局,即使它们是在不同的文件中定义的。
在以下情况下,通常不需要使用 `extern`:
当你在定义变量的文件中定义和使用该变量时。
当你在定义函数的文件中定义和使用该函数时。
`extern` 关键字主要用于声明那些在其他地方定义的变量和函数,以便编译器知道它们的存在。