📜  在C中初始化静态变量

📅  最后修改于: 2021-05-25 19:59:31             🧑  作者: Mango

在C语言中,只能使用常量字面量来初始化静态变量。例如,以下程序编译失败。

#include
int initializer(void)
{
    return 50;
}
  
int main()
{
    static int i = initializer();
    printf(" value of i = %d", i);
    getchar();
    return 0;
}

如果我们将程序更改为以下程序,则它将正常工作。

#include
int main()
{
    static int i = 50;
    printf(" value of i = %d", i);
    getchar();
    return 0;
}

原因很简单:必须在执行main()开始之前将所有具有静态存储持续时间的对象初始化(设置为其初始值)。因此,转换时未知的值不能用于静态变量的初始化。

感谢Venki和Prateek的贡献。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。