c语言extern的用法
时间: 2023-07-02 14:04:40 浏览: 116
在C语言中,extern关键字的主要作用是用来声明外部变量、函数和全局变量。它的作用是告诉编译器这个变量或函数在别的文件中已经定义了,不需要再重新定义一遍。
具体来说,extern有以下两种用法:
1. 在一个文件中使用另一个文件中定义的全局变量或函数
如果在一个源文件中需要使用另一个源文件中定义的全局变量或函数,可以使用extern关键字来声明该变量或函数。例如:
```c
// file1.c
int count;
// file2.c
extern int count; // 声明在另一个文件中定义的count变量
```
这样,在file2.c中就可以使用count变量了。
2. 在头文件中声明全局变量或函数
如果一个全局变量或函数需要在多个源文件中使用,可以将其定义放在一个头文件中,并在多个源文件中包含该头文件。但是,由于头文件中的定义在每个包含它的源文件中都会被复制一遍,所以需要使用extern来避免重复定义。例如:
```c
// func.h 头文件
extern int add(int a, int b); // 声明add函数
// func.c 源文件
int add(int a, int b) {
return a + b;
}
// main.c 源文件
#include "func.h"
int main() {
int x = 1, y = 2;
int z = add(x, y);
return 0;
}
```
这样,在main.c中就可以使用func.h头文件中声明的add函数了。
相关问题
c语言 extern用法
`extern`是C语言中的一个关键字,用于声明一个变量或函数是在其他文件中定义的。它的作用是告诉编译器这个变量或函数在其他地方定义,不需要在当前文件中再次定义。
具体用法如下:
1. 声明一个全局变量
如果想在一个文件中使用另一个文件中定义的全局变量,可以使用`extern`关键字来声明该变量。例如,在文件a.c中定义了一个全局变量`int num`,可以在文件b.c中使用该变量,只需要在b.c中声明一下该变量即可:
```c
// a.c
int num = 10;
// b.c
extern int num; // 声明num变量
int main() {
printf("%d\n", num); // 输出10
return 0;
}
```
2. 声明一个全局函数
如果想在一个文件中调用另一个文件中定义的函数,也可以使用`extern`关键字来声明该函数。例如,在文件a.c中定义了一个函数`void func()`,可以在文件b.c中调用该函数,只需要在b.c中声明一下该函数即可:
```c
// a.c
void func() {
printf("Hello, world!\n");
}
// b.c
extern void func(); // 声明func函数
int main() {
func(); // 调用func函数,输出Hello, world!
return 0;
}
```
需要注意的是,在声明一个全局变量或函数时,不能再次定义它,否则会导致编译错误。
c语言extern用法
在C语言中,`extern`关键字用于声明一个全局变量或函数,表示该变量或函数在其他文件中定义。它告诉编译器该变量或函数的定义在其他地方,不需要在当前文件中进行定义。
使用`extern`关键字的一般语法如下:
```c
extern data_type variable_name;
extern return_type function_name(arguments);
```
对于全局变量,在一个源文件中使用`extern`关键字声明变量,表示该变量是在其他文件中定义的全局变量。这样,在当前文件中就可以使用该变量,而不需要重新定义它。例如:
```c
// File1.c
int globalVariable = 10;
// File2.c
extern int globalVariable; // 声明全局变量
int main() {
printf("%d\n", globalVariable); // 使用全局变量
return 0;
}
```
对于函数,在一个源文件中使用`extern`关键字声明函数,表示该函数是在其他文件中定义的函数。这样,在当前文件中就可以调用该函数,而不需要重新定义它。例如:
```c
// File1.c
#include <stdio.h>
void myFunction() {
printf("Hello, World!\n");
}
// File2.c
extern void myFunction(); // 声明函数
int main() {
myFunction(); // 调用函数
return 0;
}
```
通过使用`extern`关键字,可以将变量和函数的定义和声明分开,使得程序的结构更加清晰,并可以方便地在多个文件之间共享变量和函数。
阅读全文