안녕하세요 오늘은 C언어 Storage Class, Auto, Register, Extern, Static에 대해 알아보겠습니다.
Storage Class : 기억 영역을 분류하기 위해서 사용되는 용어입니다. 이때 Class는 객체의 Class랑은 상관이 없고 그냥 Class입니다
Auto : 지역변수에서 저장되는 공간입니다. 일반적으로 지역변수들은 Auto를 생략한거라고 봐도 됩니다. Auto의 범위는 특정 블럭입니다.
1
2
3
4
5
6
|
int calc(void)
{
int a=1;
auto int b=2;
return a+b;
}
|
cs |
a와 b의 선언은 같습니다. 또한 a,b의 생명은 2~6줄에만 있습니다.
Register : 변수를 빠르게 접근하기 위해 RAM 대신에 CPU 레지스터에 로컬 변수를 저장하는 기능입니다. Register를 굳이 안써도 CPU가 최적화해서 Register를 사용하고 register선언을 너무 많이하면 cpu가 최적화를 못 할 수도 있습니다.
Extern : 두 개 이상의 파일 간에 공유되는 전역 함수 또는 변수가 있을 때 사용됩니다.extern는 원본 파일에 이미 정의된 변수 또는 함수의 참조를 제공하기 위해 다른 파일에서 전역 변수 또는 함수를 선언하는 데 사용됩니다. extern 키워드를 사용하여 정의된 변수를 전역변수라고 합니다. 이러한 변수는 프로그램 전체에서 엑세스할 수 있습니다. extern 변수는 초기화할 수 없으며 원본 파일에 이미 정의되어 있습니다.
Static : Static 변수는 함수/파일 내에서 local static 변수로 사용됩니다. 전역 변수로도 사용 가능합니다. extern은 한 파일 내에서 전역변수로 사용 가능하고 extern은 두 개 이상의 파일에서 전역변수로 사용 가능합니다
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 예시를 통해서 함수포인터 알아보기 (0) | 2022.03.04 |
---|---|
예시로 알아보는 volatile 한정자 (0) | 2022.01.12 |
C언어로 지수구하기 (0) | 2021.12.20 |
포인터 활용하기 (0) | 2021.08.07 |
C언어 문자열 검색하기 (0) | 2021.06.07 |