함수
함수
함수
main
에서 A
를 호출하고, 그 안에서 B
를 호출하고, C
를 호출했다고 하자.
- 그렇다면
C
가 종료되고 돌아와야B
가 종료되고 돌아와야A
가 종료된다. -
A
안에서 호출된 다른 함수들은 절대A
보다 나중에 종료될 수 없다. - 결국
A
안에 있는 모든 함수들이 종료되고 돌아와야 비로소A
가 종료된다.
함수의 이 구조는 마치 자료구조의 스택
과 유사하다.
스택은 후입선출
먼저 들어온 애가 먼저 나가는 방식도 있다. 이를 큐
라고 한다. 선입선출, 후입후출
메모리와 코드를 동일시 하면 안된다. 내가 작성한 코드가 곧 그 메모리 영역이 아니다.
- 코드는 명령어의 집합.
- 이 명령을 수행했을 때에 그 수행에 맞춰서 동작하고 있는 곳이 바로 메모리 영역이다.
코드의 영역과 메모리 영역을 분리해서 생각해야한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
// 함수
// Factorial
int Factorial(int _iNum)
{
int iValue = 1;
for (int j = 0; j < _iNum - 1; ++j)
{
iValue *= (j + 2);
}
return iValue;
}
int main()
{
int iValue = Factorial(4);
iValue = Factorial(10);
return 0;
}
- 함수 모듈화가 중요.
- 작게작게 쌓아올리기. 설계가 중요.
- 기능을 세세하게 나눠서 가져다 쓰기 용이하도록 설계하기.
This post is licensed under CC BY 4.0 by the author.