在C中初始化全局变量和静态变量

在C语言中,全局变量和静态变量都必须使用常量值进行初始化。这是因为在执行开始之前必须知道这些变量的值。如果未为全局变量和静态变量提供常量值,则会生成错误。

演示全局和静态变量初始化的程序如下。

示例

#include <stdio.h>
int a = 5;
static int b = 10;
int main() {
   printf("The value of global variable a : %d", a);
   printf("\nThe value of global static variable b : %d", b);
   return 0;
}

输出结果

上面程序的输出如下。

The value of global variable a : 5
The value of global static variable b : 10

现在,让我们了解以上程序。

全局变量a的值为5,静态变量b的值为10。因此,此程序可以按要求工作。

如果不使用常量来初始化全局变量和静态变量,则将导致错误。演示此的程序如下。

#include <stdio.h>
int func() {
   return 25;
}
int main() {
   static int a = func();
   printf("%d ", a);
}

上面的程序导致错误“初始化元素不恒定”。因此,全局变量和静态变量仅应使用常量初始化。