1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법 기억류 (storage class) 1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
1. 지역변수와 전역변수 지역변수 : 함수내에서 선언된 변수. 전역변수 : 함수외부서 선언된 변수. #include <stdio.h> int a = 30; int sub(int x); int main() { int b = 50; b = sub(b); ……. } int sub(int x) int c = x*100; return c; 지역변수 : 함수내에서 선언된 변수. 해당 함수내에서만 유효하고, 함수를 벗어나면 공간 반납. 전역변수 : 함수외부서 선언된 변수. 모든 함수에서접근 가능하고, 프로그램 종료시 공간 반납.
2. 메모리의 구성. data heap stack data 영역 : 전역변수,함수코드,… 216 220 data heap stack data 영역 : 전역변수,함수코드,… heap영역 : 사용하지 않음, 동적할당 영역. stack영역 : 지역변수…
3. auto,register 변수 예제. auto int n = 20; 기억류 자료형 변수명 #include <stdio.h> int sub1(int x); int sub2(int x); int main() { int a = 10; auto int n = 20; register int r = 30; sub1(n); sub2(r); printf(“ pi = %lf \n”,pi); } int sub1(int x) return x++; int sub2(int x) return --x; 기억류 자료형 변수명 auto : 지역변수로만 활용한다. 기억류를 생략하면 auto register : cpu내부의 register를 할당. 여분의 register가 없다면 auto처리. 시스템이 결정.
4. register 변수 확보 위치. cpu memory n r register HDD AX BX CX DX EX SP auto int n = 20; register int r = 30; memory cpu n register AX BX CX DX EX SP r HDD
5. static, extern static은 프로그램 종료시까지 공간을 유지한다. 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 = %5d , Address = %d \n",ss,&ss); sub(ss); } void sub(int x) { extern int ss; // ss변수는 외부파일에 있다. ss = 3000; printf("\n ss = %5d , Address = %d \n",ss,&ss); }
7. 기억류(storage class) 기 억 류 변수확보위치 사용범위 초기값 특 징 auto memory (stack영역) 특 징 auto memory (stack영역) 지역변수 gabage 선언된 블럭 내에서만 사용 가능. 블록을 벗어나면 소멸 register cpu내의 여분의 레지스터가 없으면 Auto처리. 속도향상이 목적 명령이 아니라 요청 static (data영역) 전역변수 프로그램 종료 시까지 공간차지. 코딩의 편리함. extern 선언은 반드시 초기화 프로젝트 작업시 외부파일과 변수를 공유하고자 할 때
8. 도움말 사용법 함수의 이름에 커서를 위치하고 F1 키를 누른다. 모든 함수의 사용법을 알 필요는 없다. 필요할 때 찾아서 사용할 줄 알면 된다. 표준함수의 종류가 많기에 외울 수는 없다. 함수의 원형을 읽고 해석할 수 있으면 된다.