기억 클래스와 변수의 종류
1. 기억 클래스
Storage Class
변수를 기억공간의 특정 영역에 할당하는 방법. 즉, 각 변수의 유효범위와 존속 기간을 설정
- 변수의 사용 위치에 따라
- 지역 변수
- 전역 변수
- 변수의 존속 기간에 따라
- 자동 변수
- 정적 변수
- 외부 변수
- 레지스터 변수
2. 지역 변수
특정 범위 내에서만 사용되는 변수
선언된 블록이나 함수 내에서 사용 가능
함수에서 사용되는 매개 변수도 해당
3. 전역 변수
함수 밖이나 외부 파일에서 선언되어
프로그램 전체에 걸쳐 사용될 수 있는 변수
가급적 프로그램 선두에 위치하는 것이 좋다. 전역변수는 초기화 안 하면 0으로 자동 초기화
* 전역 변수와 지역 변수의 비교
- 동일 범위 내에서는 지역 변수가 우선
- 전역 변수의 선언은 프로그램 선두에 위치
- 가급적 지역변수를 사용하는 것이 효율적 - 함수의 독립성 향상, 디버깅 효율 향상, 기억 공간 절약
기억 클래스를 이용한 변수 선언
- 형식
- 기억 클래스 자료형 변수명 ;
- 기능
- 기존의 변수 선언문에 기억 클래스만 기입
- 선언된 변수에 저장된 자료는 해당 기억 영역에 놓이게 됨
4. 자동 변수
함수 실행 시 만들어 지고 실행이 끝나면 기억 공간이 제거되는 유형
예약어 auto 를 사용 (생략 가능)
통용 범위는 변수가 선언된 블록이나 함수 내로 한정 = 지역 변수에 해당. 초기화 필요
5. 정적 변수
프로그램이 끝날 때까지 기억 영역이 유지되는 유형
예약어 static 을 사용 = 전역 변수에 해당.
변수의 값은 프로그램 실행 중 계속 유지. 초기화 없으면 0으로 자동 초기화됨
6. 외부 변수
함수 외부에 선언되어 프로그램이 끝날 때까지 기억 영역이 유지되는 유형
예약어 extern 을 사용 (생략 불가) = 전역 변수에 해당
초기화 없으면 0으로 자동 초기화
다른 파일에서 외부 변수로 선언된 변수의 값을 참조할 수 있다.
7. 레지스터 변수
CPU 내의 레지스터에 자료를 저장하고자 할 때 사용되는 유형
예약어 register 를 사용
자동 변수와 동일한 속성
프로그램의 실행 속도 증가를 목적으로 사용
주로 반복문에서 카운터 변수로 사용
Reference
C프로그래밍 / KNOUPress
C프로그래밍 - 한국방송통신대학교 출판문화원
C프로그래밍
press.knou.ac.kr