全局变量就像一把双刃剑,用对了事半功倍,用错了debug到天明。

1、全局变量的优势:为啥大家爱用它
访问速度快:变量放在固定地址,省去参数传递的麻烦,适合性能敏感的MCU
数据共享方便:不同模块、中断和主程序之间轻松传数据
内存管理简单:静态分配,不产生内存碎片,适合资源紧张的系统
中断处理好用:中断服务程序中与主程序通信的常用方式
2、全局变量的坑:这些苦只有踩过才知道
代码粘成一团:模块间过度依赖,改一个地方可能牵一发而动全身
命名变得困难:全项目变量名不能重复,起名想到头秃
竞态条件难防:多任务或中断中,数据可能被意外修改
调试像查无头案:变量在任何地方都可能被改,定位问题如大海捞针
3、使用技巧:扬长避短这样做
限制作用域:用static关键字,只让当前文件访问
防止数据踩踏:中断中修改全局变量时,关中断或使用原子操作
建立命名规范:g_开头或模块前缀,一眼认出全局变量
数据打包整合:相关变量放进结构体,条理更清晰
局部静态变量:只需在函数内持久保存的数据,用static局部变量
本文玩点嵌入式原创文章,转载请注明来源!

扫码关注







































