C언어 변수 심화

기윤·2022년 5월 24일
0

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 으로 서로 연결시킬 수 있음

profile
코딩 기록

0개의 댓글