C语言のstatic

C语言中的static 详细分析

内容来自添加链接描述
static关键字在编写程序时有的三大类用法:
1. static全局变量/静态全局变量
静态全局变量只在本文件内有效,其他文件无法访问它。静态全局变量只能被定义它的源文件中的变量或函数访问。
2. static局部变量/静态局部变量
static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束后才释放。
static局部变量和普通局部变量有以下区别:
1)位置:静态局部变量被编译器放在全局存储区.data,所以它虽然是局部的,但是在程序的整个生命周期内存在。
2)访问权限:静态布局变量只能被其作用域内的变量或函数访问。不能被其他的函数或源文件访问。
3)值:静态局部变量如果没有被用户初始化,则编译器自动赋值为0,以后每次调用静态局部变量的时候都用上次调用后的值。每次函数调用静态局部变量的时候都修改它然后离开,下次读的时候从全局变量存储区读出的静态局部变量就是上次修改后的值。
3. static函数
当你的程序中有很多个源文件的时候,你肯定会让某个源文件只提供一些外界需要的接口,其他的函数可能是为了实现这些接口而编写,这些其他的函数你可能并不希望被外界(非本源文件)所看到,这时候就可以用static修饰这些“其他的函数”。
所以static函数的作用域是本源文件,把它想象为面向对象中的private函数就可以了。
static函数可以很好地解决不同原文件中函数同名的问题,因为一个源文件对于其他源文件中的static函数是不可见的

原文:https://blog.csdn.net/keyeagle/article/details/6708077

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值