繁体   English   中英

静态变量未初始化

[英]Static variables are not being initialized

我正在使用Yagarto GCC编译器,并且在使用局部静态变量时发现了问题。 声明时,所有这些都由我初始化为零。 但是当调试执行时,我发现它们没有被初始化:

例:

void hello( void ){
    static int number_hellos = 0;

    number_hellos++;

    printf("%d\n", number_hellos);

}

当调试器达到number_hellos++ ,我发现其初始值不为0。为什么? 我应该启用任何编译器或链接器标志吗?

此静态初始化:

static int number_hellos = 0;

只发生一次。 实际上在编译时。 输入功能时不可以。

谢谢你的帮助

最终,我发现了问题:启动代码没有正确初始化静态变量。 这就是为什么执行到达函数hello的原因,静态变量已统一。

正确的启动代码可以解决该问题。

再次感谢

暂无
暂无

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

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