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); }
위의 프로그램은 "이니셜라이저 요소가 일정하지 않습니다"라는 오류를 발생시킵니다. 따라서 전역 및 정적 변수는 상수로만 초기화해야 합니다.