스마트웹 개발2021/프로그래밍 언어활용
스토리지 클래스
선물공룡디보
2021. 8. 1. 01:11

스토리지클래스
- 변수나함수를선언할때사용되는키워드
- 변수나 함수의 저장 위치와 사용 범위를 결정
- 변수의디폴트기억부류는auto이고, 함수의디폴트기억부류는exter
- 기억부류 데이터형 변수명;
- 기억부류 리턴형 함수형(매개변수 리스트);
- 스토리지 클래스란
global 변수
extern int global; //메모리는 할당하지 않고 사용 범위만 늘려줌
void TestGlobal(void){
global = 10; //전역 변수를 사용할수 있음
}
int global = 0
int main(void){
global = 20
}
int global = 0;
void TestGlobal(void)
{
global = 10; //전역 변수를 사용할수 있음
}
Test2.c
extern int global; //전역변수의 extern 선언
int main(void)
{
global = 20;
}
정적 변수
- 정적 지역 변수
- 키워드 : static
- 번역과정의 마지막단계인적재 시간에 기억장소를할당받는변수
- 전체 프로그램의 시작부터 종료까지를 생존 기간으로 하며 동일 기억 장소를 유지
- 정적지역 변수는전역 변수처럼프로그램이 시작할때 메모리에 할당되고프로그램이종료할 때해제
//정적전역 변수는전역 변수를다른소스 파일에서접근하지못하도록제한
//정적 전역 변수는 정적 전역 변수가 선언된 소스 파일에서만 사용
Test1.c
int global1; //전역변수 선언
static int global2; //전역변수 선언
int main(void)
{
global1 = 10;
global2 = 20;
}
Test2.c
extern int global1;
extern int global2; //exturn 을 선언해도 사용할 수 없음
void f(void)
{
global1 = 30;
global2 = 40;
}