此问题已经在这里有了答案:
我们可以在C中如下声明多个静态变量吗?如果是,它如何工作?
main()
{
static int a=1;
ptrFun();
a+=1;
ptrFun();
printf(" %d \n",a);
}
void ptrFun()
{
static int a=2;
int b=1;
a+=++b;
}
我们可以在C中如下声明多个静态变量吗?如果是,它如何工作?
是的,这很好。它由编译器通过将变量名称与特定的[[scope关联而工作。具有相同名称但在不同函数中的两个静态函数局部变量不会冲突,因为它们在不同的作用域中定义,并且它们的内存是单独分配的。