C语言中static相关

来源:互联网 发布:hadoop java教程 编辑:程序博客网 时间:2024/05/21 06:47

1.      对于全局static变量,

初始化:首先是全局变量,被初始化为0,其次是static也被初始化为0;

存放位置:存放于内存的静态区。

作用域:开始于定义位置,终止于文件的结尾。 本文件之内在没有定义此static全局变量之前,想使用的话需要加extern声明。(最好在文件开始处就定义,避免使用extern)

特殊性:static还有隐藏的作用,本文件定义了static全局变量,其他文件即使加了extern,也不能使用他。

static严格的把作用于限制在从定义开始到文件结束的本文件内。

2.      对于局部static变量

初始化:初始化为0.   (auto变量初始化的而是随机值)

存放位置:静态区

作用域:定义的函数内部使用,本文件内的其他函数也不能使用。

特殊性:不像auto局部变量会自动回收,static局部变量不会因为函数结束运行而销毁。

3.      对于static修饰的函数

这个static并不是指存放位置,而是起限制隐藏的作用,限制了只能此文件内使用,其他文件即使加了extern也不能使用。

 

 


原创粉丝点击