如何解决extern
时间: 2023-11-21 09:50:02 浏览: 39
extern 是一个关键字,用于声明一个变量或函数是在其他文件中定义的。在 C 语言中,当你使用 extern 关键字声明一个变量时,它告诉编译器这个变量是在其他地方定义的,不需要在当前文件中分配内存空间。
要解决 extern 的问题,你需要做以下几个步骤:
1. 确定变量或函数的定义位置:首先,你需要确定这个 extern 变量或函数的定义位置。它可能在其他源文件中,或者是一个库文件中已经实现的函数。
2. 包含头文件:如果这个变量或函数是在其他源文件中定义的,你需要在当前文件中包含相应的头文件。头文件中应该包含这个 extern 变量或函数的声明。
3. 编译链接:确保将这个源文件与其他定义相关的源文件一起编译,并将它们链接到最终的可执行文件中。这样,编译器就能找到这个 extern 变量或函数的定义,并正确地链接它们。
下面是一个示例:
假设你有两个源文件 main.c 和 utils.c,其中 utils.c 中定义了一个全局变量 int count,并且在 main.c 中需要使用它。你可以按照以下步骤解决这个问题:
1. 在 utils.c 文件中定义 count 变量:
```c
int count;
```
2. 在 utils.h 头文件中声明 count 变量:
```c
extern int count;
```
3. 在 main.c 文件中包含 utils.h 头文件:
```c
#include "utils.h"
```
4. 编译链接两个源文件:
```bash
gcc -o program main.c utils.c
```
这样,main.c 文件就可以正确地使用 count 变量了。
注意:extern 关键字通常用于在不同的源文件中共享变量或函数。如果你在同一个源文件中使用 extern,它通常是多余的,因为同一源文件中的变量和函数默认是可见的。