3. auto, register 변수 예제. #include <stdio. h> int sub 1(int x); int sub 2(int x); int main() { int a = 10; auto int n = 20; register int r = 30; sub 1(n); sub 2(r); printf(“ pi = %lf n”, pi); } int sub 1(int x) { return x++; } int sub 2(int x) { return --x; } auto 기억류 int 자료형 n = 20; 변수명 auto : 지역변수로만 활용한다. 기억류를 생략하면 auto register : cpu내부의 register를 할당. 여분의 register가 없다면 auto처리. 시스템이 결정.
4. register 변수 확보 위치. auto int n = 20; register int r = 30; memory cpu n register AX BX CX DX EX SP r HDD
5. static, extern static은 프로그램 종료시까지 공간을 유지한다. extern은 외부파일과 공유하기 위한 변수이다. static int n = 100; int main() { static int a = 30; } void sub(int x) { n = 3000; a = 5000; //error }
6. extern 예제. extern int ss = 0; int main() { ss = 500; printf(" ss = %5 d , Address = %d n", ss, &ss); sub(ss); } void sub(int x) { extern int ss; // ss변수는 외부파일에 있다. ss = 3000; printf("n ss = %5 d , Address = %d n", ss, &ss); }