8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

什么使得静态变量仅初始化一次?

dita 1月前

70 0

我注意到,如果在代码中初始化 C++ 中的静态变量,则初始化仅在第一次运行该函数时运行。这很酷,但它是如何实现的?它会翻译吗?

我注意到,如果在代码中初始化 C++ 中的静态变量,则初始化仅在第一次运行该函数时运行。

这很酷,但是它是如何实现的呢?它是否转化为某种扭曲的 if 语句?(如果给定一个值,则...)

void go( int x )
{
    static int j = x ;
    cout << ++j << endl ; // see 6, 7, 8
} 

int main()
{
    go( 5 ) ;
    go( 5 ) ;
    go( 5 ) ; 
}
帖子版权声明 1、本帖标题:什么使得静态变量仅初始化一次?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由dita在本站《function》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 它们只初始化一次,因为这是 C++ 标准的要求。具体如何初始化完全取决于编译器供应商。根据我的经验,编译器会生成并使用一个本地隐藏标志。

返回
作者最近主题: