函数内部和外部静态变量的区别?

发布于 2024-11-04 14:30:48 字数 159 浏览 5 评论 0原文

static int count;

int main()
{

 static int count;    

}

在函数内部和外部声明的静态变量有什么区别吗?

(我的意思是变量计数的范围和可见性

static int count;

int main()
{

 static int count;    

}

Is there any difference between static variables declared inside and outside any function?

(I mean the scope and visibility of the variable count)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

灰色世界里的红玫瑰 2024-11-11 14:31:02

当您在方法外部声明时,它将可用于声明后编写的所有静态方法函数。在方法中声明静态变量时,仅该方法可以访问

When you declare outside of method it will be available to all static method functions written after its declaration. While declaring static variable in method will be accessible by only that method.

幸福%小乖 2024-11-11 14:31:02

全局变量的动态初始化也存在差异(请参阅此处)。总而言之,如果您有:

static int count = bar();

int main ()
{
  static int count = foo ();
}

执行 main 时将调用“foo”,但标准(C++“03”)根本不需要调用“bar”!

There's also a difference in dynamic initialization of globals (see here). To summarize, if you had:

static int count = bar();

int main ()
{
  static int count = foo ();
}

The call to 'foo' will take place when main is executed, but the standard (C++ '03) doesn't require a call to 'bar' at all!

鲸落 2024-11-11 14:31:01

您的第一个 count 只能在模块内访问(该文件中的代码)。您的第二个 count 只能在 main 中访问。

Your first count is only accessible within the module (code in that file). Your second count is only accessible within main.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文