[英]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.