전공/C++
알고리즘 : 함수 호출과 재귀 함수, 복잡도
다음과 같은 코드가 주어졌습니다. int fact(int n) { if(n==0) return 1; else return fact(n-1)*n; } int main(void) { int num = 3, val; val = fact(num); printf("fact = %d\n", val); return 0; } 위 코드의 main 함수에서 fact() 함수를 호출할 때 일어나는 과정을 단계별로 적으려 합니다. 그 전에 함수 호출의 매커니즘에 대해 보고 넘어가도록 하겠습니다. 1. Instruction pointer를 1증가후 스택에 push : "IP+1" 2. return type용 공간을 스택에 push 3. 호출된 함수로 제어이동 4. 현 상태의 스택의 top을 stack frame이라는 특수 포인..
2022. 4. 18. 04:26
최근댓글