Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 다양한 스토리지 클래스

<시간/>

문제

C 언어의 다른 스토리지 클래스는 무엇입니까? 프로그램으로 설명하시겠습니까?

해결책

스토리지 클래스는 C 프로그램 내에 존재하는 변수 또는 함수의 범위와 수명으로 정의됩니다.

스토리지 클래스

다음은 C −

의 스토리지 클래스입니다.
  • 자동
  • 외부
  • 정적
  • 등록

자동 변수/로컬 변수

  • 키워드 - 자동
  • 이를 지역 변수라고도 합니다.
  • 범위 -
    • 지역 변수의 범위는 선언된 블록 내에서 사용할 수 있습니다.

    • 이러한 변수는 블록 내에서 선언됩니다.

  • 기본값 - 쓰레기 값

예시

#include<stdio.h>
void main (){
   auto int i=1;{
      auto int i=2;{
         auto int i=3;
         printf ("%d",i);
      }
      printf("%d", i);
   }
   printf("%d", i);
}

출력

3 2 1

전역 변수/외부 변수

  • 키워드 - 외부
  • 이러한 변수는 블록 외부에서 선언되므로 전역 변수라고도 합니다.

  • 범위 − 전역 변수의 범위는 프로그램 전체에서 사용할 수 있습니다.

  • 기본값 - 0

예시

#include<stdio.h>
extern int i =1; /* this ‘i’ is available throughout program */
main (){
   int i = 3; /* this ‘i' available only in main */
   printf ("%d", i);
   fun ();
}
fun (){
   printf ("%d", i);
}

출력

31

정적 변수

  • 키워드 - 정적
  • 범위 − 정적 변수의 범위는 프로그램 전체와 함수 호출 사이에 값을 유지하는 것입니다.
  • 정적 변수는 한 번만 초기화됩니다.
  • 기본값 - 0

예시

#include<stdio.h>
main (){
   inc ();
   inc ();
   inc ();
}
inc (){
   static int i =1;
   printf ("%d", i);
   i++;
}

출력

1    2    3

변수 등록

  • 키워드 - 등록
  • 레지스터 변수 값은 일반 변수가 저장되는 메모리가 아닌 CPU 레지스터에 저장됩니다.

  • 레지스터는 CPU의 임시 저장 장치입니다.

예시

#include<stdio.h>
main (){
   register int i;
   for (i=1; i< =5; i++)
      printf ("%d",i);
}

출력

1 2 3 4 5