在C语言中,extern是一个关键字,用于声明全局变量或函数的外部链接。
extern的用法和作用如下:
在声明全局变量时,使用extern关键字可以表示该变量在其他源文件中定义。它将变量的声明与定义进行分离,可以在一个源文件中声明全局变量,而在另一个源文件中定义它。这样,多个源文件可以共享同一个全局变量。
例1:extern声明全局变量
假设我们有两个源文件:main.c和global.c。我们想在main.c中使用global.c中定义的全局变量。
在global.c中定义全局变量:
// global.c
int globalVar = 10;
在main.c中使用global.c中定义的全局变量:
// main.c
#include <stdio.h>
extern int globalVar; // extern关键字声明全局变量
int main() {
printf("Global variable: %d\n", globalVar);
return 0;
}
在上述代码中,extern int globalVar;表示main.c文件中使用了global.c中定义的全局变量globalVar。这样,编译器就知道globalVar在其他地方定义,然后在运行时会链接到正确的全局变量。
例2:extern声明函数
假设我们有两个源文件:main.c和functions.c。我们想在main.c中调用functions.c中定义的函数。
在functions.c中定义函数:
// functions.c
#include <stdio.h>
void printMessage()
{
printf("Hello, extern!\n");
}
在main.c中使用functions.c中定义的函数:
// main.c
extern void printMessage(); // extern关键字声明函数
int main()
{
printMessage(); // 调用functions.c中的函数
return 0;
}
在上述代码中,extern void printMessage();表示main.c文件中使用了functions.c中定义的函数printMessage()。这样,编译器就知道函数的定义在其他地方,然后在链接阶段将正确的函数定义与函数调用进行连接。
结果展示:
总结来说,extern关键字用于声明变量或函数的外部链接,使得变量或函数可以在多个源文件中共享。通过使用extern关键字,可以将变量或函数的声明与定义分离,并确保链接时能够正确地连接到定义的实体。这在大型项目中的多个源文件交互使用全局变量或函数时非常有用