static 在单片机c语言用用法

static 在单片机c语言用用法,第1张

首先static变量不是全局变量,全局变量在整个程序中均可见。且可以在整个程序的任何位置进行修改。

而static变量,只在声明它的函数内看见,也只有在声明它的函数内可以被修改。即便在函数外或其它函数中有同名的变量,也和它不是同一变量。

和局吵枣姿部变量相比,局部变量在每次调用函数时,变量值都会升绝重置。而static变量,在每次调用函数时,它都会保留这上次调用时最后一次赋值过的值。

总之,static是一种特殊的局部变量,它可以保存函数上次调用时岩斗这个变量的状态。

在单片机C语言中,bit

a表示定义一个变量a,其类型为bit型,所谓的bit型并薯就是用一位二进制数来表示变量。bit型的取绝困者值为0或1。

static

bit

a表示定义一个bit型的变量a,其尺亩为静态变量,只初始化一次即可。

static(静态) 是一种数据变量的存储方式而已,不存在什么用法之说,但了解它的特性,能帮你写出好程序。

静态变量的特性:

1、变量只定义一次(含定义时的初始化值);

2、只在定义范围内有效(其他地方、函数并不认识这个变量);

3、函数结束,变量值不丢失。

变量有 全局变量、局部变量之分;

全局变量在程序中,分配有固定物理存储空间,程序运行过程中,数据不丢失(就是自己有个房子)。

局部变量在程序中,没有固定物理存储空间。一般出现在子函数中,调用子函数,随机分配存储梁册空间,子函数结束后,该空间回收,随机分配给其他函数使用。(就是租屋,你不租了,就租给别人)

有些时候,你又希望这个局部变量能保持,这样你下次回来还能接着算,于是就需要static 这个“静态”功能了。它能让这个分配的空间,一直给你保留着。

也许你会说,用全局变量就好了。是的,没错,它的功能几乎与全局等价羡态了。但为什么不用全局,可能原因有以下2种:

1、全局变量对所有子函数都有效,谁都橡派宏可以修改,可能会超出你的预计范围(就是说,房子虽然是你的,但大家都有钥匙,可以随便进来换换装修,你掌握并不了)

2、移植性高,子函数内的静态局部变量,只需要输出子函数即可。但全局变量,要么需要主文件为你定义这个全局变量,要么就会在多个C文件包含你的头文件时,发生重复定义全局变量问题。

当然,除了静态局部变量,还有静态全局变量,这个用于模块化程序设计里,为了避免其他模块出现同名全局变量问题,就使用了只针对本模块程序有效的 静态全局变量


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12558242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存