[C Programming] 함수 & 재귀함수

Kioreo·2023년 4월 11일
0

Layer7

목록 보기
4/5

함수

프로그래밍에서 함수(function)란 하나의 특별한 목적의 작업을 따로 분리해놓은 것으로 수학에서 사용하는 함수의 개념과 비슷합니다.
C 프로그램은 이러한 함수들로 구성되며, int main()도 함수입니다.

함수를 사용하는 이유

함수를 사용하는 가장 큰 이유는 반복적인 프로그래밍을 피할 수 있기 때문입니다.
또 유지보수 및 가독성이 좋고 재활용성이 좋다는 장점을 가지고 있습니다.

정확히 명시된 규칙은 없으나, 대략 하나의 기능을 하나의 함수로 만드는 것이 가장 좋습니다.

C언어에서 사용자 정의 함수를 정의하는 방법은 다음 그림과 같습니다.

함수 정의

기본 문법
(변환 자료형) (함수이름) (매개변수 목록){ 기능 }

// example
int sum ( int x, int y ){
}

재귀함수

위에서 설명했던 함수 내부에서 자기 자신을 또다시 호출하는 행위를 의미합니다.
이러한 재귀 호출은 자기가 자신을 계속 호출하므로, 끝없이 반복되게 됩니다.
그렇기에 재귀 호출을 중단할 수 있도록 조건문을 반드시 포함해야 합니다.

재귀함수의 장단점

장점

  1. 코드 간결함

단점

  1. 무한 재귀 호출의 위험성
  2. 성능상의 문제

재귀함수 정의

기본 문법
(변환 자료형) (함수이름) (매개변수 목록){ ... (함수이름) }

// example
int sum(int n) {
   	if(n == 1){
    	return 1;
    }
    return n + sum(n-1);
}  

위의 예제처럼 재귀 호출을 중단할 수 있도록 조건문을 반드시 포함해주어야 합니다.
만약 재귀 호출을 중단하는 조건문을 포함해주지 않으면 스택 오버플로우(Stack Overflow)에 의해 종료될 것입니다.

profile
KITRI BoB 12th, Layer7 23rd

0개의 댓글