📜  了解C语言中的“ extern”关键字(1)

📅  最后修改于: 2023-12-03 15:21:39.326000             🧑  作者: Mango

了解C语言中的 “extern” 关键字

在C语言中,extern是一个关键字,它被用来表示一个变量或函数是在另一个文件中声明或定义的。

何时使用extern

当在一个文件中使用一个在另一个文件中声明或定义的变量或者函数时,需要使用extern关键字。这个关键字告诉编译器,这个变量或函数是在其他文件中定义的。

以下是一个使用extern关键字的例子:

// File1.c
int globalVar = 42;

// File2.c
extern int globalVar;

int main() {
    printf("%d", globalVar); // 输出 42
}

在这个例子中,变量globalVar在File1.c文件中定义,但是在main函数中被使用。在File2.c文件中,我们使用了extern关键字来告诉编译器这个变量是在另一个文件中定义的。

全局变量与extern

在C语言中,全局变量默认情况下是有外部链接(external linkage)的,这意味着它们可以被其他文件访问。因此,在一个文件中定义了一个全局变量,在其他文件中可以使用extern来访问它。

下面是一个展示全局变量和extern关键字的例子:

// File1.c
int globalVar; // 定义全局变量

// File2.c
extern int globalVar;

void foo() {
    globalVar = 42; // 改变全局变量的值
}

在这个例子中,我们定义了一个全局变量globalVar,在另一个文件中使用了extern来访问它。然后,在函数foo中,我们改变了全局变量的值。

extern与链接

在C语言中,extern关键字与链接(linkage)有关。链接指的是在编译时如何处理多个源文件之间的符号关系。extern关键字在这个过程中起到了重要的作用,它告诉编译器某个函数或变量是在其他文件中定义的,需要在链接时引用它。

总结

在C语言中,extern关键字被用来表示一个变量或函数是在另一个文件中声明或定义的。它与链接有关,告诉编译器某个函数或变量是在其他文件中定义的。当在一个文件中使用其他文件中的变量或函数时需要使用extern关键字。