문제
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