#include <stdio.h> // standard input output library -> stdio
int Add(int left, int right) {
return left + right;
}
// Factorial
int Factorial(int _iFac)
{
int iValue = 1;
for (int j = 0; j < _iFac - 1; ++j)
{
iValue *= (j + 2);
}
return iValue;
}
int main()
{
// 함수가 사용하는 메모리 영역
// 스택 메모리 영역
int iData = Add(100, 200);
iData = Add(300, 500);
iData = Add(200, 500);
iData = Add(100, 200);
iData = Add(500, 300);
int iValue = Factorial(4);
iValue = Factorial(8);
return 0;
}
함수의 구조
<자료구조>
스택 : 후입 선출 구조
먼저 들어온 것이 나중에 나갑니다.
-> mina 함수는 모든 함수가 끝나고 마지막에 끝나게 됩니다.
-> 함수의 동작 방식과 닮아 있습니다.
큐 : 선입 선출
먼저 들어온 것이 먼저 나갑니다.
메모리 영역에서 함수가 영역을 요청하고 수행하고 해제하는 것을 스택구조와 유사합니다.
코드에서 Add() 함수가 호출되면 스택메모리에 영역을 요청하고 수행하고 해제 되는것을 5번 반복합니다.
특정 기능을 코드로 작성하고 기능을 재사용 하기 위한것이 함수입니다.
이러한 상황을 예시로 본인이 만든 기능이 특정 파일의 몇번 라인에서 복사 붙여넣기 하여 사용하세요 보다는 함수로 만들어 놓고 호출하는 것이 더 유연하다고 생각합니다.
함수를 활용 하여 모듈화를 많이 해둔다면 다른 여러 함수를 활용하여 새로운 결과를 만들 수 있습니다.