728x90
<변수 스코프(scope)>
: 변수 참조가 가능한 유효범위, 통용되는 범위
<지역변수(Local Variable)>
- 함수 내에 선언된 변수, 변수가 선언된 블록 내에서만 유효한 변수
- 함수 시작시 생성, stack에 생성, 함수가 종료되면 변수도 소멸
- 초기화 전에는 쓰레기 값을 가지고 있음 (쓰레기 값: 이전프로그램에서 썼던 공간만 차지하는... 현재 프로그램에는 필요 없는!)
- 매개변수도 지역변수
- 블록 내에서 변수 선언이 가능(C99)
cf) C 언어 표준 - 1983 ANSI애서 ANSI C 라는 표준안을 발표 - 이후 ISO 주도로 표준안을 발표 (C99, C11) |
<전역변수(Global Variable)>
- 프로그램 내 전체 함수에서 유효
- 프로그램 시작시 생성, 프로그램 종료시 소멸, 데이터 영역에 생성
- 함수 밖에서 선언
- 자동으로 0으로 초기화
단점
- 프로그램 전체에서 참조하므로 복잡성을 증대
- 모듈화의 독립성 확보가 어려움
- 메모리 공간을 점유 (프로그램 시작~끝까지 점유)
cf) 이러한 단점으로 꼭 필요한 경우에만 사용!
- 동일한 이름의 전역변수와 지역변수 사용 시 지역변수가 우선한다.
- extern을 선언하여 외부(다른 파일 등)에서도 참조 가능
ex) extern int 변수;
728x90