如果我们在 main 函数的开头声明一个变量而没有给出 EXTERN 关键字,它将被视为静态全局变量(只能在该文件中访问)还是我们可以从其他文件中访问它?例如:
#include<stdio.h>
int k;
main()
{
}
从技术上讲,该变量k
可用于其他文件(模块),但除非其他文件有extern int k
声明,否则它们将不知道该变量,并且编译时错误将表明该变量k
在其他文件中是未知的。
外部定义和声明,默认初始化为零。
int k;
仅外部声明,在其他地方定义和初始化
extern int k;
外部定义、初始化和声明
int k = 2;
static int k;
它告诉编译器变量 k 可以在文件 scocpe 访问,不能在外部访问。
extern int k;
它告诉链接器变量 k 链接到另一个文件中的变量 k。
int k;
是全局作用域,不能在两个文件中声明两次。