我可以选择声明变量static或global.
我想在一个函数中使用变量来维护计数器.
例如
void count()
{
static int a=0;
for(i=0;i<7;i++)
{
a++;
}
}
Run Code Online (Sandbox Code Playgroud)
我的另一个选择是将变量a声明为全局变量.我只会在这个函数count()中使用它.
哪种方式最安全的解决方案?
Bla*_*iev 10
它仅在编译和链接时才很重要.一个static局部变量应存放在完全相同的方式作为一个全球性初始化.
声明局部static变量仅影响其在语言级别的可见性,使其仅在封闭函数中可见,但具有全局生命周期.
未标记的全局变量(或一般的任何对象)static具有外部链接,并且链接器在合并每个目标文件时将考虑该符号.
标记的全局变量static仅在当前转换单元内具有内部链接,并且链接器在合并各个转换单元时将不会看到这样的符号.