- 가장 일반적.
- 함수의 호출문이 반환 값으로 대체 됨.
- int Add(int num1, num2){
int result = num1 + num2;
return result;
}
- void Result(int num1){
printf("결과출력: %d\n, num);
}
- int readnum(void){
int num;
scanf("%d", &num);
return num;
}
- void Prog(void){
int num;
printf("두 정수를 입력하세요.\n");
printf("덧셈 결과가 출력됩니다.\n");
}
1. 함수를 빠져나간다.
2. 값을 빠져나간다.
- Local Variable = Automatic Variable
- 함수 내에서만 존재 및 접근 가능함.
- 스택(Stack)이라는 메모리 영역에 할당됨.
- 선언문이 존재하는 함수가 반환을 하면 메모리 공간에서 소멸됨.
- 어디서든 접근이 가능한 변수.
- 프로그램의 시작과 동시에 메모리 공간에 할당되어 종료시까지 존재.
- 별도의 값으로 초기화하지 않으면 0으로 초기화.
- 같은 명의 지역변수가 선언되면 전역변수는 가려짐.
- 지역변수는 static선언으로 전역변수의 특성을 가짐.
- 딱 1회 초기화되고, 프로그램 종료시까지 메모리 공간에 존재.
- 단, 선언된 함수 내에서만 접근 가능.
- CPU내에 존재하는 메모리로, 연산이 매우 빠름.
- 전역 변수는 register 선언을 추가할 수 없음.
- 함수 내에서 자기 자신을 다시 호출하는 함수.
- 재귀 탈출 조건이 필수적으로 필요함.