'static'에 해당되는 글 1건

C 프로그램에서 변수 선언시 일반적으로 그 변수의 타입을 작성하는 거 외에 그 변수 타입 앞에 작성해 주는 키워드이다.

1. auto 기억류
   a. 함수 안이나 블럭 안에서 선언할 수 있으며 해당 함수나 블럭을 벗어나게 되면 해당 변수가 소멸된다.
   b. 실행시에 기억 장소가 준비된다.
   c. 변수를 선언하면 쓰레기 값을 기억하게 된다.
   d. 대부분의 지역변수들이 여기에 속한다.

2. register 기억류
   a. 기억장소가 CPU 내의 register에 확보되는 것만 다르고 대부분의 사항이 auto 기억류와 동일하다.
   b. 많은 수의 변수를 register로 선언할 수 없다. (register 개수의 한계 때문)
   c. &(주소연산자) 연산자를 사용할 수 없다.
   d. 작고 빠른 프로그램 제작시 종종 사용한다.

3. static 기억류
   a. 컴파일시에 기억 장소가 확보된다.
   b. 전역 또는 지역 변수로도 사용이 가능하다.
   c. 함수 밖에서 선언하면 선언 이후 언제나 사용 가능한 전역 변수가 된다.
   d. 함수나 블럭 내에서 선언하면 선언된 함수나 블럭 내에서만 사용 가능하다.
      하지만 함수나 블럭을 벗어나더라도 auto, register와는 달리 기억장소는 소멸되지 않는다.

4. extern 기억류
   a. 프로그램간에 변수를 공유할 목적으로 선언한다.
   b. 프로그램을 묶어 프로젝트로 만들어야 의미가 있다.
   c. 단일 프로그램에서만 사용하면 static 기억류와 별로 다를 게 없다.
   d. 선언시 초기화를 해야 하며 단일 프로그램에서 사용시에는 함수 밖에서만 선언이 가능하다.


※ 1. register는 CPU 구조를 보면 register라는게 있는데, 아주 작은 저장장치지만 속도는 엄청 빠르다.
    2. static은 메모리의 static 이라는 영역에 선언 ( 한 번 할당되어 프로그램이 종료될 때까지 존재하는 변수)

※ 메모리의 구조를 좀 더 알아보는 것이 도움이 ...
블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,