编译器不会自动添加"extern"关键字。在C语言中,如果定义一个全局变量并且没有初始化它,那么它将被初始化为零。如果您想在一个文件中将全局变量定义为extern,则必须对其进行显式声明。
例如,我们可以在一个文件中定义一个全局变量,然后在另一个文件中声明它为外部变量,并将其初始化。示例代码如下:
file1.c
int global_var; // 定义一个未初始化的全局变量
file2.c
extern int global_var; // 声明全局变量
global_var = 0; // 初始化全局变量
这是一种定义全局变量的常见方法,可以有效避免命名冲突和其他问题,确保在不同文件中可以正确访问同一个全局变量。