C 언어에서 변수 및 함수의 기능은 q 변수 또는 함수의 가시성 및 범위와 같은 저장소 클래스로 설명됩니다.
C 언어의 스토리지 클래스에는 자동 변수, 외부 변수, 정적 변수, 레지스터 변수의 4가지 유형이 있습니다.
자동
자동 스토리지 클래스는 모든 로컬 변수에 대한 기본 스토리지 클래스입니다. 함수가 호출될 때 생성됩니다. 함수의 실행이 완료되면 변수는 자동으로 소멸됩니다.
함수에 대해 지역적이기 때문에 지역 변수라고도 합니다. 기본적으로 컴파일러에서 가비지 값을 할당합니다.
범위 - 자동 변수는 펑션 블록에 대한 로컬 변수입니다.
기본값 - Garbage 값은 기본 초기화 값입니다.
평생 - auto 변수의 수명은 변수가 정의된 블록에 의해 제한됩니다.
다음은 C 언어의 자동 변수 예입니다.
예시
#include <stdio.h> int main() { auto int a = 28; int b = 8; printf("The value of auto variable : %d\n", a); printf("The sun of auto variable & integer variable : %d", (a+b)); return 0; }
출력
The value of auto variable : 28 The sun of auto variable & integer variable : 36
외부
외부 변수는 전역 변수라고도 합니다. 이러한 변수는 함수 외부에서 정의됩니다. 이러한 변수는 함수 실행 전반에 걸쳐 전역적으로 사용할 수 있습니다. 전역 변수의 값은 함수에 의해 수정될 수 있습니다.
범위 - 그들은 어떤 기능에도 구속되지 않습니다. 프로그램의 모든 곳에 있습니다. 즉, 글로벌합니다.
기본값 - 전역 변수의 기본 초기화 값은 0입니다.
평생 - 프로그램 실행이 끝날 때까지.
다음은 C 언어의 extern 변수의 예입니다.
예시
#include <stdio.h> extern int x = 32; int b = 8; int main() { auto int a = 28; extern int b; printf("The value of auto variable : %d\n", a); printf("The value of extern variables x and b : %d,%d\n",x,b); x = 15; printf("The value of modified extern variable x : %d\n",x); return 0; }
출력
The value of auto variable : 28 The value of extern variables x and b : 32,8 The value of modified extern variable x : 15
정적
정적 변수는 한 번만 초기화됩니다. 컴파일러는 프로그램이 끝날 때까지 변수를 유지합니다. 정적 변수는 함수 내부 또는 외부에서 정의할 수 있습니다.
범위 - 블록에 로컬입니다.
기본값 - 기본 초기화 값은 0입니다.
평생 - 프로그램 실행이 끝날 때까지.
다음은 C 언어의 정적 변수 예입니다.
예시
#include <stdio.h> int main() { auto int a = -28; static int b = 8; printf("The value of auto variable : %d\n", a); printf("The value of static variable b : %d\n",b); if(a!=0) printf("The sum of static variable and auto variable : %d\n",(b+a)); return 0; }
출력
The value of auto variable : -28 The value of static variable b : 8 The sum of static variable and auto variable : -20
등록
레지스터 변수는 컴파일러에게 메모리 대신 CPU 레지스터에 변수를 저장하도록 지시합니다. 자주 사용하는 변수는 레지스터에 보관되며 더 빠르게 액세스할 수 있습니다. 이러한 변수의 주소는 절대 얻을 수 없습니다.
범위 - 함수에 로컬입니다.
기본값 - 기본 초기화 값은 쓰레기 값입니다.
평생 - 그것이 정의된 블록의 실행이 끝날 때까지.
다음은 C 언어의 레지스터 변수 예입니다.
예시
#include <stdio.h> int main() { register char x = 'S'; register int a = 10; auto int b = 8; printf("The value of register variable b : %c\n",x); printf("The sum of auto and register variable : %d",(a+b)); return 0; }
출력
The value of register variable b : S The sum of auto and register variable : 18