C언어
지역변수의 선언은 블록 안에서 하고 블록이 끝나면 참조할 수 없다. 초기화는 알 수 없는 값으로 된다.
전역변수의 선언은 어디서나 가능하다. 초기화는 0으로 초기화된다.
static은 프로그램이 시작할 때 한번만 실행된다. 또한 정적이란 의미를 내포하고 있다.
#include <stdio.h> static int a; int b; int main(){ int c; { int d=1; } }위 소스 컴파일은 될까?
<<본문 보기>>
#include <stdio.h> static int a; int b; int main(){ int c; { int d=1; } }위 소스 컴파일은 될까?
결론부터 말하자면 컴파일은 된다. 위 소스를 보면 전역변수 2개 지역변수 2개로 나뉘어져 있다. 전역변수는 0으로 초기화 되었을 것이고 지역변수 c는 알 수 없는 값이 들어가 있을 것이고 d는 1이란 값이 들어가 있을 것이다. 하지만 전역변수의 static의 차이는 무엇일까