我可以在声明变量静态或全局之间做出选择。
我想在一个函数中使用变量来维护计数器。
例如
void count()
{
static int a=0;
for(i=0;i<7;i++)
{
a++;
}
}
我的另一个选择是将变量 a 声明为全局变量。 我只会在这个函数 count() 中使用它。
哪种方式最安全?
最佳答案
它只在编译和链接时有影响。 static
局部变量应该以与全局变量完全相同的方式存储和初始化。
声明局部 static
变量只会影响其在语言级别的可见性,使其仅在封闭函数中可见,但具有全局生命周期。
未标记为 static
的全局变量(或任何一般对象)具有外部链接,链接器在合并每个目标文件时将考虑该符号。
标记为static
的全局变量仅在当前翻译单元内有内部链接,链接器在合并各个翻译单元时不会看到这样的符号。
关于c - 在嵌入式环境中全局声明还是静态声明更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848144/