有关 extern 外部存储类型
请问 全局变量 是在静态存储区分配存储单元。
全局变量的存储类型有 外部的(extern )和 静态的(static)
那么没有进行 extern 和 static 说明的全局变量,默认存储类型是什么?
谢谢
[解决办法]
extern声明变量为全局,static声明并定义变量为全局/局部静态。
普通变量定义在全局则为全局变量,普通变量定义在函数内则为局部变量。
重点关注以上两个关键字:声明 定义
[解决办法]
变量只要声明在函数外面,就是全局变量
如果在程序中需要引用一个全局变量,就需要用extern声明,标识这是个全局变量,具体定义在其他地方。
[解决办法]
变量有三个属性:存储期限(动态,静态)、作用域(文件,块)、链接(外部,内部,无)。
函数内部定义的auto变量具有动态存储期限,块作用域,无链接。用static修饰后,其存储期限由动态变为静态,作用域和链接不变。
函数外部定义的变量(全局变量)具有静态存储期限,文件作用域,外部链接。用static修饰后,其链接由外部链接改为内部链接,存储期限和作用域不变。
extern用来声明。extern声明的变量始终具有静态存储期限。作用域看该变量声明的位置。至于链接,比较麻烦。