CS Study

C++ 기초문법4) C++에서 함수 선언하기

이병견 2023. 5. 14. 21:31

C++에서의 함수 선언은 C와 마찬가지로

함수 원형(return 없는 상태) -> main()부 ->함수 본체(return 존재, 내용 정의)로 이루어진다.

함수 원형을 선언하지 않고 main() 뒤에 새 함수를 선언하면, main()에서는 새 함수에 대한 정보를 모르는 상태이므로 어떤 내용을 불러와야 할지도 모른다. 따라서 미리 원형 선언 후 -> main()뒤에 있는 본체부에서 정보를 읽어 와서 선언한 함수를 사용하는 구조라고 생각하면 된다.

 

예시는 다음과 같다.

int fibo(int n);

 

fibo라고 하는 피보나치 수열을 구하는 함수를 선언해 사용하고자 한다. main()이 오기 전에, fibo부터 선언한다. return은 지금 명시할 필요가 없다. main()이후에 오는 본체부에서 기술할 것이기 때문에..

 

int main()
{
    int n,result;
    cin >> n;
    result=fibo(n);
    cout << result;
    return 0;
}

main() 함수부이다. 선언할 함수를 미리 정의한 뒤에 적는 것이 흐름상 편하다.

int fibo(int n){
    int fn;
    if (n==0){
        return 0;
    }
    else if (n==1){
        return 1;
    }
    else{
        fn=fibo(n-1)+fibo(n-2);
        return fn;
    }

fibo 함수부이다. 새로 선언한 함수의 내용이 담겨져 있으며, 조건문을 써야 하는 예시이기 때문에 각 조건별로 return 값이 정의되어 있다. 전체 코드 구조를 보자면

 

#include <iostream>
using namespace std;
int fibo(int n);
int main()
{
    int n,result;
    cin >> n;
    result=fibo(n);
    cout << result;
    return 0;
}
int fibo(int n){
    int fn;
    if (n==0){
        return 0;
    }
    else if (n==1){
        return 1;
    }
    else{
        fn=fibo(n-1)+fibo(n-2);
        return fn;
    }
}

이런 구조이다. 함수 원형 선언 -> main -> 함수 본체 선언(선언한 원형의 내용을 채우는 부분이라고 생각하면 된다.) 의 구조로 이루어져 있다.