概述
,
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定义局部静态变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复