繁体   English   中英

静态变量初始化为错误的值

[英]Static variable initialized with wrong value

我已经定义了这样的功能

static void
flatten_tree(...)
{
  static int num = 0;
  ...
}

但是,执行该函数时, num获得一些随机值,而不是第一次运行时为0。 在后续函数调用时,其行为就像静态var应该做的那样。 静态变量不是用零显式初始化的吗? 初始化它的正确方法是什么?

如果在第一次调用时未将其设置为零,则说明您的C实现被破坏了,调试器被破坏了,或者您犯了一些其他错误-我不会在最可能的情况下发表评论:-)

如果您真的想看看它在做什么,请暂时将代码更改为:

static void
flatten_tree(...)
{
  static int num = 0;
  printf( "XYZZY DEBUG: initial num is %d\n", num);
  exit(1);

  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM