2013년 8월 6일 화요일

자동 기억 존속 시간, 정적 기억 존속 시간, 동적 기억 존속 시간

C++는 세 가지 유형으로 데이터를 저장한다.
이 세 가지 유형은 메모리에 데이터를 존속시키는 시간에서 차이가 난다.

1. 자동 기억 존속 시간(automatic storage duration)
함수 매개변수를 포함하여, 함수 정의 안에 선언된 변수는 자동 기억 존속 시간을 가진다.
그들은 프로그램 실행이 그들을 정의하고 있는 함수나 블록 안으로 들어갈 때 생성된다.
그리고 그들에게 할당된 메모리는, 프로그램 실행이 해당 함수나 블록을 떠날 때 해제된다.
C++는 두 종류의 자동 변수를 가진다.

2. 정적 기억 존속 시간(static storage duration)
함수 정의의 바깥에서 정의된 변수 또는 키워드 static을 사용하여 정의된 변수는, 정적 기억
존속 시간(static storage duration)을 가진다. 그들은 프로그램이 실행되는 전체 시간 동안 존속한다. C++는 세 종류의 정적 변수를 가진다.

3. 동적 기억 존속 시간(dynamic storage duration)
new 연산자를 사용하여 할당된 메모리는, delete 연산자로 해제되거나 프로그램이 종료할 때 까지, 둘 중 어느 것이 먼저 일어날 때 까지 존속한다. 이 메모리는 동적 기억 존속 시간(dynamic storage duration)을 가진다. 때로는 이 메모리를 자유 공간(free store)이라 부른다.

댓글 없음:

댓글 쓰기