2022-05-24
전역 변수 / 지역 변수
int count = 0;
void func(){
int count = 1
}
main(){
int count = 2;
printf("%d", count);
}
전역 변수와 지역 변수 이름이 같을 경우
지역 변수가 우선시된다.
즉, main()에서 count를 접근할 경우 2가 출력될 것이다.
저장 유형 지정자
생존 기간을 결정하는 요인 중 하나이다.
auto
: 기본형. 우리가 지금까지 선언한 변수들이 전부 auto임.
static
: 정적 변수라고 부름. 함수 안에서 한 번 선언되고 함수가 끝나도 값이 저장됨, 정보 은닉 효과가 있음.
register
: 레지스터에 변수를 저장.
volatile
: 하드웨어랑 관련된 변수. 참고 정도만.
static 용법 - 정적 변수, 다른 파일에서 접근 못하는 전역 변수
static int private_value;
static void add(){
static int count = 0;
count++;
}
main(){
add();
add();
add();
}
add() 안의 count 변수가 함수가 끝나도 저장되기 때문에
값이 0으로 다시 돌아가지 않는다. 계속 증가시킬 수 있다.
변수 외부 연결
다른 파일끼리
전역 변수를 extern
으로 서로 연결시킬 수 있음