C中多个同名的静态变量[重复]

问题描述 投票:0回答:1

我们可以在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 static-variables
1个回答
0
投票

我们可以在C中如下声明多个静态变量吗?如果是,它如何工作?

是的,这很好。它由编译器通过将变量名称与特定的[[scope关联而工作。具有相同名称但在不同函数中的两个静态函数局部变量不会冲突,因为它们在不同的作用域中定义,并且它们的内存是单独分配的。

© www.soinside.com 2019 - 2024. All rights reserved.