知识卡片

全局变量是交换条件

普通读书笔记卡 · 1800.e

内容

全局变量可能节省栈和传参成本,也可能引入隐藏依赖、竞争和测试困难。发散:在资源受限系统中,全局变量不是绝对禁忌,但每个全局状态都应有明确所有者和访问规则。

参考来源

- 位置:《嵌入式系统设计与实践》第8章《事半功倍》"8.2.5 全局变量的优点和缺点"一节(源文件:_epub-src/OEBPS/text00120.html附近) - 结论依据:原文说明全局变量的代价("访问全局变量总是要慢些"、隐藏依赖)与好处并存:"全局变量在什么时候可以节省RAM?假设有一个函数链,并且在这些函数中都需要访问同一个特殊的变量……如果将数据作为每个函数的参数传入……这个特殊的变量将多次压入栈空间。这种情况下,全局变量就可以不需要占用栈空间"。 - 原始内容:全局变量不能存入寄存器,这意味着全局变量只能占用RAM空间。因此,相对于访问寄存器中的局部变量来说,访问全局变量总是要慢些……全局变量在什么时候可以节省RAM?假设有一个函数链,并且在这些函数中都需要访问同一个特殊的变量……这种情况下,全局变量就可以不需要占用栈空间,同时缩短函数处理过程。