C语言中如何初始化静态变量(代码实例)

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

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

如果我们将程序更改为以下程序, 则它可以正常工作。
#include< stdio.h> int main() { static int i = 50; printf ( " value of i = %d" , i); getchar (); return 0; }

【C语言中如何初始化静态变量(代码实例)】原因很简单:必须在执行main()开始之前初始化所有具有静态存储持续时间的对象(设置为其初始值)。因此, 转换时未知的值不能用于静态变量的初始化。
感谢Venki和Prateek的贡献。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读