C语言中extern
时间: 2024-06-14 13:03:25 浏览: 16
C语言中的extern关键字用于声明一个变量或函数是在其他文件或本文件的其他位置定义的。它的作用是告诉编译器这个变量或函数的定义在别的地方,不需要在当前文件中进行定义。这样可以避免重复定义,同时也可以方便地在多个文件之间共享变量或函数。
下面是一个使用extern声明函数的例子:
// 文件1.c
#include <stdio.h>
extern void func(); // 声明外部函数
int main() {
func(); // 调用外部函数
return 0;
}
// 文件2.c
#include <stdio.h>
void func() { // 定义外部函数
printf("Hello, world!\n");
}
下面是一个使用extern声明变量的例子:
// 文件1.c
#include <stdio.h>
extern int g_val; // 声明外部变量
int main() {
printf("%d\n", g_val); // 输出外部变量的值
return 0;
}
// 文件2.c
int g_val = 10; // 定义外部变量
相关问题
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;
}
```
c语言中extern函数
在C语言中,extern关键字用于声明外部函数。当我们需要在一个文件中使用另一个文件中定义的函数时,我们需要使用extern关键字进行声明。例如,在文件1.cpp中,我们可以使用extern关键字声明文件2.cpp中定义的函数show()。这样,我们就可以在文件1.cpp中调用show()函数而不需要再使用extern声明了。extern的作用是告诉编译器,在外部文件中已经有这个函数的定义,需要通过编译。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)