我是靠谱客的博主 虚心蚂蚁,最近开发中收集的这篇文章主要介绍Arduino使用static定义局部静态变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

, Arduino使用static定义局部静态变


static在定义局部静态变量

  • ????局部静态变量存储在静态存储区,在程序运行期间都不会释放,只在声明时进行初始化,而且只能初始化一次,如果没有初始化,其自动初始化为0或空字符。具有局部变量的“记忆性”和生存周期“全局性”特点。

  • ????局部变量的“记忆性”是指在两次函数调用时,第二次调用开始时,变量能够保持上一次调用结束数的值

  • 不带修饰词static效果:

????示例代码

void setup() {
  Serial.begin(115200);
}

void staticShow()
{
   int a=10;
  Serial.println(String("a的值:")+a);
  a += 10;
}

void loop() {
   staticShow();delay(3000); 
}
  • ????编译信息:

项目使用了 3232 字节,占用了 (10%) 程序存储空间。最大为 30720 字节。
全局变量使用了208字节,(10%)的动态内存,余留1840字节局部变量。最大为2048字节。

  • ???? 打印信息:
    在这里插入图片描述
    == 局部变量使用修饰词static ==
void setup() {
  Serial.begin(115200);

}

void staticShow()
{
 static  int a=10;
  Serial.println(String("a的值:")+a);
  a += 10;
}
void loop() {
   staticShow();delay(3000); 

}
  • ????编译信息:

项目使用了 3258 字节,占用了 (10%) 程序存储空间。最大为 30720 字节。
全局变量使用了210字节,(10%)的动态内存,余留1838字节局部变量。最大为2048字节。

  • 从编译后的信息可以看到,对比不使用static修饰词的全局变量使用的动态内存,要多出2个字节的数。
  • ????打印结果,可以看到局部变量值是累加的,说明使用static时,需要给变量划分一块固定的存储空间的,用于下一次调用。

在这里插入图片描述

  • 总结
  • ????虽然使用static作为局部变量的修饰词,其实功能实现了全局变量的功能,来系统还是需要给其划分动态存储空间。

最后

以上就是虚心蚂蚁为你收集整理的Arduino使用static定义局部静态变量的全部内容,希望文章能够帮你解决Arduino使用static定义局部静态变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部