找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2501|回复: 0
打印 上一主题 下一主题
收起左侧

static静态局部变量的妙用

[复制链接]
跳转到指定楼层
楼主
对比下面两张图:

图1

图2
图1和图2的中uint32_t是定义一个32位的无符号整型变量的自定义类型。
上面两张图其实是局部变量和全局变量的区别。其中,图1就是个错误的用法,因为msTicks永远也不会涨起来。要想让msTicks涨起来,必须要把msTicks定义成全局变量才可以。
不过,这里还有一种妙用,就是利用static关键字,如下图所示:

这里虽然把msTicks定义成了局部变量,但是用了static关键字,结果是msTicks也会涨起来。
什么原理?
这里用static把msTicks定义成了一个静态局部变量。静态局部变量和普通局部变量一样,只能在定义它的函数里面使用它。普通局部变量在程序退出函数以后,就会释放,静态局部变量则不会被释放,它在整个生命周期都存在。下次读到是上次修改后的值。
看不懂原理没关系,知道怎么用就可以了,等以后慢慢悟吧!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表