单片机/MCU论坛
直播中

kmno4

12年用户 989经验值
私信 关注
[问答]

在单片机程序里频繁读写的变量放在全局或静态局部变量会更好吗?

看看我的理解对不对
1.全局变量 静态局部变量 栈 堆 全都会放在RAM中
2.函数
uint32_t fun(uint32_t arg){
    static uint32_t i;
    uint32_t j;

    ...

    return j;

}
其中 参数arg 变量j 都是会放在栈中 i放在静态局部变量区
如果 函数fun是放在while(1)中频繁运行 根据问题1. 那么是不是最好把arg j改成静态局部变量或者全局变量

回帖(1)

杨红

2023-10-16 17:29:42
从好的编程习惯来说,尽量减少全局变量的使用
此外无论那种变量,其实都在RAM中,只是在RAM中的不同位置而已。
只要是在RAM,频繁读写都没有问题,都不会时选择变量类型(全局、静态、局部)之类需要考虑的因素。
全局变量用来在不同函数之类非传参传递信息
静态局部变量时在同函数中保持执行过程状态(保持上次本函数执行状态,或者称为延续上次本函数执行状态)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分