본문 바로가기

c

초기화와 스토리지 클래스

1. 자동 변수와 자동 배열
함수내부에서 정의되는 변수 또는 배열(형식인수 포함)
정의된 변수는 그 함수 내부에서만 사용
함수호출 했을 때만 사용 호출 끝나면 사라지고 메모리 반환
반면에 자동배열을 부분적으로 초기화하면 나머진 0으로 초기화

2. 외부변수와 외부배열
함수 밖에서 정의된 변수 또는 배열
외부변수는 그 변수 다음에 오는 모든 함수에 통용
프로그램이 실행되는 동안 계속 유지
선언되는 순간 0으로 초기화

3. 정적변수와 정적배열
함수 내부에서 키워드 static을 이용해서 정의(외부변수, 외부배열처럼 행동)
외부배열처럼 함수가 종료된 뒤에도 계속 유지
선언되는 순간 0으로 초기화 

 

기억 부류

전역 - 외부

지역 - 자동

정적

레지스터(희망적)

지정자

extern

auto

static

register

저장 장소

정적 데이터 영역

스택

정적 데이터 영역

CPU 레지스터

선언 위치

함수의 외부

함수의 내부

함수의 내부

함수의 내부

통용 범위

프로그램 전체

함수의 내부

함수의 내부

함수의 내부

파괴 시기

프로그램 종료시

함수 종료시

프로그램 종료시

함수 종료시

초기값

0으로 초기화

초기화되지 않음

0으로 초기화

초기화되지 않음

레지스터는 실제로 레지스터 변수로 되거나 레지스터에 공간이 없다면 자동변수로 넘어감

'c' 카테고리의 다른 글

const 와 포인터  (0) 2012.11.13
함수의 전달인수 배열  (0) 2012.11.12
switch  (0) 2012.11.09
continue, go to , break  (0) 2012.11.08
개행문자 입력 유무  (0) 2012.11.07