static 修饰全局变量、局部变量和函数的区别
2015-12-08 20:42
323 查看
一、全局变量与static全局变量
首先要清楚全局变量本身就是静态存储,加上static肯定也是静态存储。
两者的主要区别在于作用域。
普通的全局变量其作用域为整个源程序,各个源文件之间都可以访问到这个普通全局变量。
静态的全局变量其作用域仅为定义该变量的源文件,其他源文件访问不到这个静态全局变量吗,更加安全。
另外,static全局变量只能初始化一次。
二、局部变量与static局部变量
这两者的主要区别在于:
局部变量本身是存储在栈区,加上static后存储在静态区。
另外,static局部变量只能被初始化一次。
三、普通函数和static函数
这两者的区别也是作用域。
static函数仅能在当前源文件内部之间互相调用。
static函数在内存中只有一份。 普通函数每次调用都会存一份。
首先要清楚全局变量本身就是静态存储,加上static肯定也是静态存储。
两者的主要区别在于作用域。
普通的全局变量其作用域为整个源程序,各个源文件之间都可以访问到这个普通全局变量。
静态的全局变量其作用域仅为定义该变量的源文件,其他源文件访问不到这个静态全局变量吗,更加安全。
另外,static全局变量只能初始化一次。
二、局部变量与static局部变量
这两者的主要区别在于:
局部变量本身是存储在栈区,加上static后存储在静态区。
另外,static局部变量只能被初始化一次。
三、普通函数和static函数
这两者的区别也是作用域。
static函数仅能在当前源文件内部之间互相调用。
static函数在内存中只有一份。 普通函数每次调用都会存一份。
相关文章推荐
- 创建第一个scrapy项目
- Dia作图过程中添加latex格式字符方法
- 全面解析Linux 内核 3.10.x - 内存管理 - 内存模型
- Volley请求Cookie超时/Token认证失效的处理
- 北大OJ2390
- UIView初始化:initWithFrame与initWithCoder的区别
- Android重要控件概览(中)
- 堆栈概念
- (八十四)字符函数库cctype
- 实验4
- 黑马程序员——java高新技术---线程池
- 北大OJ1298
- 线性表顺序表模板 纯本人手工创造
- 静态区间第K大
- xcode 使用代码块Code Snippets
- 方法选择器的妙用
- MNIST手写数字数据库
- WCF类型共享技巧【转载】
- 【转载】COM 组件设计与应用(十八)——属性包
- 北大OJ3414