C语言 static 用法总结
2014-10-18 12:42
387 查看
1、static 函数:
只能被模块内的函数调用,不能被模块外的函数调用。模块可以理解为当前.c文件。静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。(这句话有待验证)
2、static全局变量:
2.1 作用范围: 只能在当前.c文件中使用。2.2 存储位置: 静态数据区。
2.3 生命周期:整个程序运行期间
2.4 定义 及 初始化 :
static全局变量可以显示初始化
static int s_param = 10;
也可以省去 “= 10”,让系统默认初始化
static int s_param; //默认初始化 int main(int argc, char* argv[]) { printf("s_param = [%d] \n", s_param); //0 return 0; }
其实global全局变量也具备这一属性,因为全局变量存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。但是,默认初始化这种方法并不推荐,推荐使用显示初始化!
2.5 比较
作用域 | 存储 | 生命周期 | |
static全局变量 | 当前.c文件 | 静态数据区 | 整个程序运行期间 |
全局变量 | 整个源程序 | 静态数据区 | 整个程序运行期间 |
3、static局部变量:
3.1 作用范围:当前函数体。3.2 存储位置: 静态数据区。
3.3 生命周期:整个程序运行期间
3.4 定义及初始化:
static局部变量可以显示初始化,也可以由系统默认初始化。
static int s_local; //默认初始化 static int s_local_param = 1; //显示初始化,推荐使用
3.5 比较
作用域 | 存储 | 生命周期 | |
static局部变量 | 当前函数体 | 静态数据区 | 整个程序运行期间 |
普通局部变量 | 当前函数体 | 栈 | 该函数执行过程中,从定义开始到函数执行完即被释放 |
相关文章推荐
- c语言中static用法总结
- c语言中static 用法总结
- zz:c语言中static用法总结
- c语言中static用法总结
- c语言中static 用法总结
- C语言中static 用法总结
- c语言中static 用法总结
- c语言中static用法总结
- c语言中static 用法总结
- [ASM/C/C++]c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结
- c语言中static 用法总结(转)
- c语言中static 用法总结