기억 클래스 (auto,static,register등) : 자료의 위치,유효 범위(scope),유효 기간(lifetime) 지정하는 역할
// 기억클래스 자료형 변수명;
auto int a;
static int b;
extern int c;
register int d;
예1)
#include <stdio.h>
int i = 10;
int j = 20;
void main() {
extern int i; // 외부 변수 선언(생략가능, 변수 i가 선언되면 선언된 위치 이하부터 그 값이 유효하기 때문)
extern int k; // 외부 변수 선언(생략불가, 변구 k가 범위 바깥에 있으므로)
int j = 100;
print("i = %d j = %d k = %d", i, j, k);
}
int k = 50;
예2)
파일1
#include <stdio.h>
#pragma warning(disable:4996)
void extern_ex(); // extern_ex() 함수 원형 선언
char s[100]; // 전역변수 s선언
void main() {
printf("문자열을 입력하세요:");
scanf("%s", s);
printf("입력 문자열은 %s는 전역변수 s에 저장\n", s);
extern_ex(); // extern_ex() 함수 호출
}
파일2
#include <stdio.h>
extern char s[]; // 변수 s를 외부 변수로 선언
void extern_ex() {
printf("외부변수 s값은 %s입니다. \n", s); // 외부변수 s값을 출력
}
결과
문자열을 입력하세요 : 어쩌구
입력 문자열 어쩌구는 전역변수 s에 저장
외부변수 s값은 어쩌구입니다.
다른 파일에 있는 변수 값을 읽어오는게 가능하다는..!
잘 봤습니다. 좋은 글 감사합니다.