打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简述static关键字的作用?
在嵌入式C语言当中,它有三个作用:
作用一:在函数中的局部变量的值在函数调用结束后不消失而保留原值,即占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。
在函数体中,局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。其作用域就在函数内部,函数外部无法访问。
用途:作为一个计数器,这样函数每次被调用的时候就可以进行计数。这是统计函数被调用次数的最好的办法,因为这个变量是和函数息息相关的,而函数可能在多个不同的地方被调用,所以从调用者的角度来统计比较困难。
本质:采用static声明局部变量,即将局部变量的存储位置由原来的栈中改放在静态存储区。
作用二:在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
作用三:在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
其实是分三种情况进行说明:
第一、定义函数内部的局部变量,分配存储空间之后,其值始终存在,存储空间在静态存储区内,普通函数内部的局部变量存放在栈中。
第二、定义函数外部,模块内的全局变量,仅在当前模块有效,其他模块无法调用。
第三、定义模块内的static函数,仅在本文件中有效。
简而言之,可以说是:限制变量、函数的作用域;设置变量的存储域。
参考资料:
《嵌入式C 进阶之道》
《Linux C编程实战》
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C语言中的static , extern关键字
c++变量在内存中的存储区域
C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别
static变量和static函数的用法摘抄_小米的心境
「粉丝问答10」C语言关键字static的使用详解
静态变量 static 全局变量 global-Java实例 - Firnow
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服