Note

C语言入门_3

2022年08月02日 Tuesday · 2 min read
编程语言
# C 存储类

存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。

extern 存储类

extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当使用 extern 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。

当有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。

extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候,如下所示:

第一个文件:main.c

#include<stdio.h>  
int count; 
extern void write_extern();  
int main()
{   
    count = 5;   
    write_extern();
}

第二个文件:test.c

#include<stdio.h>  
extern int count;  
void write_extern(void)
{   
    printf("count is %d\n", count);
}

在这里,第二个文件中的 extern 关键字用于声明已经在第一个文件 main.c 中定义的 count

现在 ,在VS Code终端编译这两个文件,如下所示:

 $ gcc main.c test.c

这会产生 a.exe 可执行程序

运行该应用程序

$ ./a.exe

它会产生下列结果:

count is 5