- 打卡等级:初来乍到
- 打卡总天数:5
- 最近打卡:2025-04-30 07:46:22
荣誉版主
- 积分
- 2319
|
发表于 2024-1-15 20:06:04
|
显示全部楼层
任务是RTOS的范畴, 变量申明是编绎器的范畴.
你所说的问题和减少任务切换开销没多大的关系. 和变量存储的位置有很大关系.
对于编绎器来说, 函数内声明的是局部变量,放在栈内. 函数外声明的是全局变量,放在固定的位置.
编绎器不会管也不知道这个函数是不是任务. 在编绎器眼里这就是个函数
如此来分析,局部变量至少有两个好处:
1.私密性高, 别的地方访问不到.
2.使用效率高, 释放以后别的函数也可使用. (但是你这个地方有点特殊, 就是这个任务函数可能永远也不会退出,达不到省内存的目底, 但仍建议局部变量)
全局变量在多个函数或任务之间共享数据比较方便. 但是有许多缺点, 比如访问私密性不强, 函数不可重入, 内存使用效率低下等.
一般来说单个功能函数可避免使用全局变量的, 就避免.
|
|