有.h文件还有必要用extern
时间: 2024-04-17 13:25:43 浏览: 100
C++ .h和.cpp文件总结
5星 · 资源好评率100%
在.h文件中使用`extern`关键字的情况通常是为了在多个源文件之间共享全局变量或函数的声明。
.h文件通常用于存放函数的声明和结构体、枚举等的定义。当多个源文件需要使用相同的全局变量或函数时,可以在.h文件中声明这些变量或函数,并在需要使用它们的源文件中包含该.h文件。
当在.h文件中声明全局变量时,使用`extern`关键字可以显式地说明该全局变量是在其他源文件中定义的,而不是在当前源文件中定义。这样,在包含该.h文件的源文件中,就可以使用该全局变量而不会导致重复定义错误。
例如,假设有一个globals.h文件,其中声明了一个全局变量:
globals.h:
```c
extern int sharedVariable; // 声明一个在其他文件中定义的全局变量
```
然后,在其他源文件中定义该全局变量:
file1.c:
```c
#include "globals.h"
int sharedVariable = 10;
```
file2.c:
```c
#include "globals.h"
#include <stdio.h>
extern int sharedVariable;
int main() {
printf("Shared Variable: %d\n", sharedVariable);
return 0;
}
```
通过在globals.h中使用`extern`关键字声明全局变量,并在其他源文件中定义该全局变量,可以在file2.c中使用`extern`关键字来引用共享的全局变量。
总而言之,虽然在.h文件中使用`extern`关键字不是必需的,但它可以显式地声明全局变量是在其他源文件中定义的,从而帮助确保在多个源文件中共享变量时不会引起重复定义错误。这样可以提高代码的可读性和可维护性。
阅读全文