본문 바로가기
c언어

c언어 적절한 저장 유형 사용방법 알아보기(static, register, extern)

by 개발자 L 2022. 12. 6.
반응형

c언어 적절한 저장 유형 사용방법 알아보기(static, register, extern)

네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 저장 유형 지정자들을 적절히 사용하는 방법에 대하여 알아보도록 하겠습니다.

저장 유형은 어떻게 지정을 해주느냐에 따라 정적으로 할당이 될 수도 있고, 자동으로 할당이 될 수도 있으며, 외부 참조 허용 여부들도 결정이 되기 때문에 매우 중요합니다.

그림 지금부터 같이 보도록 하겠습니다.

 

1. 저장 유형의 종류

저장 종류는 이렇습니다.

제가 표로 한 번 정리를 해봤습니다.

저장 유형 키워드 정의되는 위치 범위 생존 시간
자동 auto 함수 내부 지역 임시
레지스터 register 함수 내부 지역 임시
정적 지역 static 함수 내부 지역 영구
전역 존재하지 않음 함수 외부 모든 소스 파일 영구
정적 전역 static 함수 외부 하나의 소스 파일 영구
외부 참조 extern 함수 외부 모든 소스 파일 영구
반응형

 

2. 저장 유형의 올바른 사용법

저장 유형은 이렇게 사용을 합니다.

일단 일반적으로는 기본으로 할당이 되는 자동 저장 유형을 사용을 하는 것이 좋습니다.

그 이유는 개발자가 굳이 신경을 쓰지 않아도 자동으로 할당이 되며,

때가 되면 자동으로 소멸이 되기 때문에 메모리를 잡아먹을 일도 없습니다.

그리고 자동 저장 유형은 여러 가지 함수들을 독립적으로 사용을 할 수 있게 해 주고,

그건 다시 말하면 유지 및 보수를 매우 쉽게 만들어준다는 뜻이기도 합니다.

그리고 자동 저장 유형 중에 유독 자주 사용이 되는 변수가 있다면 레지스터 유형으로 지정을 해줍니다.

그 이유는 레지스터는 cpu에 들어있는 부품인데, 거기에 저장을 해주는 지정자입니다.

그래서 cpu로 연산을 맡기기 때문에 연산 처리 속도가 메모리에 집어넣는 것보다 훨씬 빠릅니다.

또한, 어떤 함수가 종료가 되었는데 그 값이 유지가 되어야 한다면 정적 지역 변수로 지정을 해줍니다.

그 이유는 함수를 여러 번 돌릴 수 있는 가능성을 제기하는 것과 같기 때문에 그렇게 해두면 계속 그 값이 누적되어 업데이트됩니다.

마치 데이터베이스를 갱신을 시키는 것과 비슷하다고 생각하면 됩니다.

그리고 많은 함수에서 공유가 되어야 한다면, 외부 변수로 지정을 해줍니다.

그리고 그 변수가 많은 함수에서 참조가 되어야 한다면 외부 참조 변수로 두어야 합니다.

그래야 여기저기 자유롭게 쓸 수 있기 때문입니다.

 

여기까지 여러 가지 저장 유형들의 종류와 사용 방법에 대하여 알아보았습니다.

다음 포스팅에서는 가변 매개 변수 함수에 대하여 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~

반응형

댓글