c语言中extern需要在同级目录下才能使用吗?
时间: 2024-03-28 14:40:13 浏览: 17
`extern` 关键字是用来声明一个变量或函数是在其他文件或模块中定义的。在 C 语言中,如果你要在一个文件中引用另一个文件中声明的变量或函数,你需要使用 `extern` 来告诉编译器该变量或函数是在其他文件中定义的。这个时候,你需要在你的代码中包含该变量或函数的声明,通常是通过在一个头文件中声明该变量或函数。
所以,`extern` 关键字并不要求被引用的变量或函数必须在同一个目录下,只要你在代码中正确地包含了该变量或函数的声明,编译器就能够正确地找到它们。当然,你需要确保编译器能够找到定义该变量或函数的源文件,通常是通过编译时指定源文件的路径来实现。
相关问题
c语言中extern需要在同行目录吗?
`extern`关键字在C语言中用于声明一个变量或函数是在其他文件中定义的,在当前文件中仅作为声明使用。因此,`extern`关键字并不要求被引用的变量或函数在同一目录下。
在C语言中,可以将函数或变量的声明放在头文件中,然后在需要使用它们的地方通过`#include`指令将这个头文件包含进来。这样,即使被引用的变量或函数在其他文件中定义,也能够在当前文件中使用。
示例代码如下:
```
// file1.c
int global_var; // 定义一个全局变量
// file2.c
extern int global_var; // 声明一个在其他文件中定义的全局变量
int main() {
global_var = 10; // 在当前文件中使用全局变量
return 0;
}
```
在上面的示例代码中,`global_var`被定义在`file1.c`文件中,然后在`file2.c`文件中使用`extern`关键字进行声明。虽然这两个文件在不同的文件中,但由于在`file2.c`文件中进行了声明,因此可以在`main`函数中使用`global_var`变量。
需要注意的是,如果被引用的变量或函数在其他库中定义,还需要将这个库链接到当前程序中才能正常使用。
c语言中extern使用
在C语言中,extern关键字用于声明一个变量或函数是在其他文件或模块中定义的。它的作用是告诉编译器该变量或函数在其他文件中定义,编译器在编译时不会对其进行处理,而是在链接时将其与其他文件中的定义进行链接。
下面是两个使用extern关键字的例子:
1. 声明外部函数
假设我们有两个文件,一个是main.c,另一个是func.c,func.c中定义了一个函数show(),我们需要在main.c中调用该函数,就需要使用extern关键字进行声明。
```c
// func.c代码
#include <stdio.h>
void show() {
printf("hello world");
}
// main.c代码
#include <stdio.h>
extern void show(); // 声明外部函数show()
int main() {
show(); // 调用外部函数show()
return 0;
}
```
2. 声明外部变量
假设我们有两个文件,一个是main.c,另一个是var.c,var.c中定义了一个全局变量g_val,我们需要在main.c中使用该变量,就需要使用extern关键字进行声明。
```c
// var.c代码
int g_val = 10;
// main.c代码
#include <stdio.h>
extern int g_val; // 声明外部变量g_val
int main() {
printf("%d", g_val); // 输出外部变量g_val的值
return 0;
}
```