嵌入式环境中的全局或静态声明是否更安全?

我可以选择声明变量static或global.

我想在一个函数中使用变量来维护计数器.

例如

void count()
{
   static int a=0;
   for(i=0;i<7;i++)
   {
      a++;
   }

}

我的另一个选择是将变量a声明为全局变量.
我只会在这个函数count()中使用它.

哪种方式最安全的解决方案?

它仅在编译和链接时才很重要.应该以与全局变量完全相同的方式存储和初始化静态局部变量.

声明局部静态变量仅影响其在语言级别的可见性,使其仅在封闭函数中可见,但具有全局生命周期.

未标记为静态的全局变量(或一般的任何对象)具有外部链接,并且链接器在合并每个目标文件时将考虑该符号.

标记为static的全局变量仅在当前转换单元内具有内部链接,并且链接器在合并各个转换单元时将不会看到这样的符号.

相关文章
相关标签/搜索