我已经定义了这样的函数
static void
flatten_tree(...)
{
static int num = 0;
...
}
但是,执行该函数时,num
会获得一些随机值,而不是第一次运行时的0。在后续函数调用时,它的行为应该是静态var应该做的。是不是用零显式初始化静态变量?初始化它的正确方法是什么?
答案 0 :(得分:0)
如果它第一次调用时没有设置为零,那么你的C实现被破坏,你的调试器被破坏,或者你已经犯了一些其他的错误 - 我不会评论最可能出现的情况: - )
如果真的希望了解它正在做什么,请暂时将代码更改为:
static void
flatten_tree(...)
{
static int num = 0;
printf( "XYZZY DEBUG: initial num is %d\n", num);
exit(1);
...
}