static在51单片机中几种用法
3个回答
展开全部
static(静态) 是一种数据变量的存储方式而已,不存在什么用法之说,但了解它的特性,能帮你写出好程序。
静态变量的特性:
1、变量只定义一次(含定义时的初始化值);
2、只在定义范围内有效(其他地方、函数并不认识这个变量);
3、函数结束,变量值不丢失。
变量有 全局变量、局部变量之分;
全局变量在程序中,分配有固定物理存储空间,程序运行过程中,数据不丢失(就是自己有个房子)。
局部变量在程序中,没有固定物理存储空间。一般出现在子函数中,调用子函数,随机分配存储空间,子函数结束后,该空间回收,随机分配给其他函数使用。(就是租屋,你不租了,就租给别人)
有些时候,你又希望这个局部变量能保持,这样你下次回来还能接着算,于是就需要static 这个“静态”功能了。它能让这个分配的空间,一直给你保留着。
也许你会说,用全局变量就好了。是的,没错,它的功能几乎与全局等价了。但为什么不用全局,可能原因有以下2种:
1、全局变量对所有子函数都有效,谁都可以修改,可能会超出你的预计范围(就是说,房子虽然是你的,但大家都有钥匙,可以随便进来换换装修,你掌握并不了)
2、移植性高,子函数内的静态局部变量,只需要输出子函数即可。但全局变量,要么需要主文件为你定义这个全局变量,要么就会在多个C文件包含你的头文件时,发生重复定义全局变量问题。
当然,除了静态局部变量,还有静态全局变量,这个用于模块化程序设计里,为了避免其他模块出现同名全局变量问题,就使用了只针对本模块程序有效的 静态全局变量
静态变量的特性:
1、变量只定义一次(含定义时的初始化值);
2、只在定义范围内有效(其他地方、函数并不认识这个变量);
3、函数结束,变量值不丢失。
变量有 全局变量、局部变量之分;
全局变量在程序中,分配有固定物理存储空间,程序运行过程中,数据不丢失(就是自己有个房子)。
局部变量在程序中,没有固定物理存储空间。一般出现在子函数中,调用子函数,随机分配存储空间,子函数结束后,该空间回收,随机分配给其他函数使用。(就是租屋,你不租了,就租给别人)
有些时候,你又希望这个局部变量能保持,这样你下次回来还能接着算,于是就需要static 这个“静态”功能了。它能让这个分配的空间,一直给你保留着。
也许你会说,用全局变量就好了。是的,没错,它的功能几乎与全局等价了。但为什么不用全局,可能原因有以下2种:
1、全局变量对所有子函数都有效,谁都可以修改,可能会超出你的预计范围(就是说,房子虽然是你的,但大家都有钥匙,可以随便进来换换装修,你掌握并不了)
2、移植性高,子函数内的静态局部变量,只需要输出子函数即可。但全局变量,要么需要主文件为你定义这个全局变量,要么就会在多个C文件包含你的头文件时,发生重复定义全局变量问题。
当然,除了静态局部变量,还有静态全局变量,这个用于模块化程序设计里,为了避免其他模块出现同名全局变量问题,就使用了只针对本模块程序有效的 静态全局变量
展开全部
static可以视为全局变量,只初始化一次且为0;
局部static数据类型:只在这个函数中起作用
全局static数据类型:在该源文件起作用
用法:常常用于记录一些如定时器中断的标志位,或是只在一处地方访问、修改但是又需要保存以供下次处理的数据。
局部static数据类型:只在这个函数中起作用
全局static数据类型:在该源文件起作用
用法:常常用于记录一些如定时器中断的标志位,或是只在一处地方访问、修改但是又需要保存以供下次处理的数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-05-12 · 知道合伙人互联网行家
关注
展开全部
只有两种,低电平触发或下降沿触发
下降沿触发不用担心中断重入问题
下降沿触发不用担心中断重入问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询