首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有关 extern 外部存储类型解决办法

2012-05-07 
有关 extern 外部存储类型请问 全局变量 是在静态存储区分配存储单元。全局变量的存储类型有 外部的(extern

有关 extern 外部存储类型
 
  请问 全局变量 是在静态存储区分配存储单元。
   
  全局变量的存储类型有 外部的(extern )和 静态的(static)

  那么没有进行 extern 和 static 说明的全局变量,默认存储类型是什么?
  谢谢

[解决办法]
extern声明变量为全局,static声明并定义变量为全局/局部静态。

普通变量定义在全局则为全局变量,普通变量定义在函数内则为局部变量。

重点关注以上两个关键字:声明 定义
[解决办法]
变量只要声明在函数外面,就是全局变量
如果在程序中需要引用一个全局变量,就需要用extern声明,标识这是个全局变量,具体定义在其他地方。
[解决办法]
变量有三个属性:存储期限(动态,静态)、作用域(文件,块)、链接(外部,内部,无)。

函数内部定义的auto变量具有动态存储期限,块作用域,无链接。用static修饰后,其存储期限由动态变为静态,作用域和链接不变。

函数外部定义的变量(全局变量)具有静态存储期限,文件作用域,外部链接。用static修饰后,其链接由外部链接改为内部链接,存储期限和作用域不变。

extern用来声明。extern声明的变量始终具有静态存储期限。作用域看该变量声明的位置。至于链接,比较麻烦。

热点排行