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

📅  最后修改于: 2023-12-03 14:49:00.494000             🧑  作者: Mango

了解C语言中的"extern"关键字

在C语言中,"extern"是一个关键字,用于表明函数或变量的作用域和存储类别。在本文中,将详细介绍"extern"关键字。

作用域

"extern"关键字可以用于声明在另一个文件中定义的全局变量或函数。这样,就可以在当前文件中使用该变量或函数,而不需要重新定义它。例如,下面的代码演示了这一点:

// file1.h
extern int global_variable;

// file1.c
int global_variable = 10;

// file2.c
#include "file1.h"
#include <stdio.h>

int main() {
    printf("%d\n", global_variable); // 输出 10
    return 0;
}

在这个例子中,"global_variable"是在"file1.c"中定义的,但是在"file2.c"中使用。在"file2.c"中,通过包含"file1.h"头文件来声明"global_variable"的存在,并通过"extern"关键字告诉编译器不需要为它分配内存。

存储类别

除了作用域,"extern"关键字还可以用于说明变量或函数的存储类别。如果一个变量或函数被声明为extern,则意味着它的内存分配是在其他地方进行的。实际上,这是默认情况下的行为,因为所有全局变量和函数都被认为是extern的。

下面是一个使用"extern"关键字说明存储类别的例子:

extern int a; // 声明一个外部变量 a

int main() {
    a = 10; // 给全局变量 a 赋值
    return 0;
}

int a; // 定义一个全局变量 a

在上面的例子中,"a"被声明为"extern",这意味着它在另一个文件中定义。然后,在文件中定义"main"主函数时,可以给"global_variable"分配内存并赋值。最后,在文件中,变量"a"被定义为全局变量。

总结

"extern"关键字可以用于声明在其他文件中定义的变量和函数的存在,并用于说明变量和函数的存储类别。这是C语言中非常重要的语言特性之一,经常被用于编写大型项目和库。

在理解和使用"extern"关键字时,需要注意作用域和存储类别等方面,以确保代码的正确性和可读性。