1. 你需要理清一个概念,无论那种方式,只要是程序中的,编译下载后都会进入flash中存储起来,无论是全局变量还是局部变量(有初始化值时),因为这些值都需要通过存储区(flash)加载到ram中的,所以都会占同样多的flash空间
2. 由此肯定是全局变量更好了,反而局部变量,因为每个程序(子片段)定义初始化时的值不完全一样,所以更可能的是多占用空间存储初始化值(有可能有重复的),编译时优化又可能优化不到,所以反而有占用更多空间的可能(极致情况也就是和全局存储一样了)
综上,如果这些指令存在复用,且一次定义多次运行,肯定是一次定义全局变量,再调用,即方便,又节省空间的。
----------------------------------------
不过你的程序是AT指令,按理应该有一些是需要临时格式化的(一些具体操作数的),是否还需要个别拼接?
如果这样,你应该是重复部分全局存储,分别部分才有字符串临时拼接的形式临时产生,这样对flash的占用就会降低很多。