全局变量声明和定义的区别
全局变量的声明(declare),表示其属性,主要指类型;在A文件引用B文件定义的全部变量,则要在A文件中用extern关键字来声明该变量,而不是再定义一个
全局变量的定义(definition),还会导致为该变量分配存储空间
static用法
若是修饰全局变量,则表示该变量的作用域是定义处到文件结束
若是修饰局部变量,则表示该变量是静态的,生存期为整个程序的生存期,其存储空间在程序的全局数据区上分配,而一般局部变量在栈上分配存储空间
另外有个问题,局部变量会覆盖同名的全部变量的作用域,从原理上讲很简单,就是编译器在最顶部的栈上找到了该名字的变量就不会到别处找了,否则是继续到栈下面找,然后是到全局数据区去找
但是,覆盖全局变量的作用域有什么意义呢?