程序的运行结果如下:
可以看到,对于test.c源文件中定义的全局变量value,可以在test1.c源文件中,通过extern关键字,声明value关键字是在其他模块中定义的变量。那么,在test1.c源文件中就可使用value变量。
此时,我们把test.c源文件中定义的全局变量,使用static关键字修饰,定义为静态全局变量,如下:
然后,重新编译程序,编译结果如下:
可以看到,编译提示错误!test1.c源文件中使用的value变量是没有定义。因为test.c中定义的value变量是静态全局变量,所以,静态全局变量的作用域只局限于定义该变量的test.c源文件中,那么,在test1.c源文件就无法使用test.c源文件定义的静态全局变量。
由于静态全局变量的作用域只限定在定义变量的源文件内,所以,不同的源文件中,可以定义同名的静态全局变量。