c언어 적절한 저장 유형 사용방법 알아보기(static, register, extern)
네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 저장 유형 지정자들을 적절히 사용하는 방법에 대하여 알아보도록 하겠습니다.
저장 유형은 어떻게 지정을 해주느냐에 따라 정적으로 할당이 될 수도 있고, 자동으로 할당이 될 수도 있으며, 외부 참조 허용 여부들도 결정이 되기 때문에 매우 중요합니다.
그림 지금부터 같이 보도록 하겠습니다.
1. 저장 유형의 종류
저장 종류는 이렇습니다.
제가 표로 한 번 정리를 해봤습니다.
저장 유형 | 키워드 | 정의되는 위치 | 범위 | 생존 시간 |
자동 | auto | 함수 내부 | 지역 | 임시 |
레지스터 | register | 함수 내부 | 지역 | 임시 |
정적 지역 | static | 함수 내부 | 지역 | 영구 |
전역 | 존재하지 않음 | 함수 외부 | 모든 소스 파일 | 영구 |
정적 전역 | static | 함수 외부 | 하나의 소스 파일 | 영구 |
외부 참조 | extern | 함수 외부 | 모든 소스 파일 | 영구 |
2. 저장 유형의 올바른 사용법
저장 유형은 이렇게 사용을 합니다.
일단 일반적으로는 기본으로 할당이 되는 자동 저장 유형을 사용을 하는 것이 좋습니다.
그 이유는 개발자가 굳이 신경을 쓰지 않아도 자동으로 할당이 되며,
때가 되면 자동으로 소멸이 되기 때문에 메모리를 잡아먹을 일도 없습니다.
그리고 자동 저장 유형은 여러 가지 함수들을 독립적으로 사용을 할 수 있게 해 주고,
그건 다시 말하면 유지 및 보수를 매우 쉽게 만들어준다는 뜻이기도 합니다.
그리고 자동 저장 유형 중에 유독 자주 사용이 되는 변수가 있다면 레지스터 유형으로 지정을 해줍니다.
그 이유는 레지스터는 cpu에 들어있는 부품인데, 거기에 저장을 해주는 지정자입니다.
그래서 cpu로 연산을 맡기기 때문에 연산 처리 속도가 메모리에 집어넣는 것보다 훨씬 빠릅니다.
또한, 어떤 함수가 종료가 되었는데 그 값이 유지가 되어야 한다면 정적 지역 변수로 지정을 해줍니다.
그 이유는 함수를 여러 번 돌릴 수 있는 가능성을 제기하는 것과 같기 때문에 그렇게 해두면 계속 그 값이 누적되어 업데이트됩니다.
마치 데이터베이스를 갱신을 시키는 것과 비슷하다고 생각하면 됩니다.
그리고 많은 함수에서 공유가 되어야 한다면, 외부 변수로 지정을 해줍니다.
그리고 그 변수가 많은 함수에서 참조가 되어야 한다면 외부 참조 변수로 두어야 합니다.
그래야 여기저기 자유롭게 쓸 수 있기 때문입니다.
여기까지 여러 가지 저장 유형들의 종류와 사용 방법에 대하여 알아보았습니다.
다음 포스팅에서는 가변 매개 변수 함수에 대하여 알아보도록 하겠습니다.
긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~
'c언어' 카테고리의 다른 글
c언어 순환 호출하기 (0) | 2022.12.06 |
---|---|
c언어 가변 매개 변수 함수 알아보기 (0) | 2022.12.06 |
c언어 연결 알아보기(외부 연결, 내부 연결, extern 지정자, static 지정자) (0) | 2022.12.06 |
c언어 변수의 생존 시간, 변수 할당의 종류, 저장 유형 지정자 알아보기 (0) | 2022.12.06 |
c언어 전역 변수 알아보기 (0) | 2022.12.06 |
댓글