我正在学习C语言,在此期间,我面对全局变量和extern关键字 . 我在这个网站(Global variable in C are static or not)上读到了它们并发现了
默认情况下,全局变量是extern
但我知道全局变量的默认值是 0
.
所以,我感到很困惑:如何才能声明 extern
关键字的变量才被声明和定义 .
我正在学习C语言,在此期间,我面对全局变量和extern关键字 . 我在这个网站(Global variable in C are static or not)上读到了它们并发现了
默认情况下,全局变量是extern
但我知道全局变量的默认值是 0
.
所以,我感到很困惑:如何才能声明 extern
关键字的变量才被声明和定义 .
1 回答
默认情况下全局变量是extern - 这意味着它们可以被其他translation unit使用(可以只是其他源文件) .
表示全局变量不能自动从其他源文件中使用,除非这些源文件上有相应的
extern
声明 .确实
extern
关键字没有任何初始化,因为它只是声明 . 因此,全局变量(来自原始源文件)的自动值(0)是在它们自己的定义点获得的 .请注意,只能有一个定义(在原始源文件中),但有多个
extern
声明(在其他源文件上) .