C语言中 extern是什么意思
时间: 2023-09-30 13:04:00 浏览: 127
在C语言中,关键字extern用于声明一个变量或函数是在其他文件中定义的,而不是当前文件中定义的。它告诉编译器在链接时在其他文件中寻找该变量或函数的定义。extern通常用于在多个源文件中共享变量或函数的定义,以避免重复定义和减少代码冗余。在使用extern时,需要注意变量或函数的定义必须在其他文件中可见,否则会导致链接错误。
相关问题
C语言中extern
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`,而在另一个文件中定义了它,这就实现了数据的外部链接。使用`extern`有以下几个关键点:
1. 声明(declaration):在需要访问这个外部变量或函数的地方使用`extern`关键字,告诉编译器有一个这样的实体,但具体的实现(定义)还未给出。
2. 定义(definition):在某个位置(通常是在包含该声明的文件或其他相关的头文件中),提供变量或函数的实际内存分配或函数体。
例如:
```c
// 文件a.c
extern int global_var;
void func(void);
// 文件b.c
int global_var = 0; // 定义
void func() {
// 函数体...
}
// 包含a.c并在main中使用的c.h
extern void func();
```
这里,`global_var`在`a.c`中声明,在`b.c`中定义,通过`#include "c.h"`在`main.c`等其他文件中使用。
阅读全文