IMCAT.DEV
로그인 가입
C++ 입문 문법

C++ 함수 정의 및 호출

C++ 함수 정의 및 호출 — 초급

함수 정의 및 호출

1. 도입 (왜 배워야 하는가)

C++에서 함수는 프로그램을 구성하는 기본 단위입니다. 함수는 특정 작업을 수행하는 코드 블록으로, 이를 통해 코드의 재사용성과 가독성을 높일 수 있습니다. 실무에서는 복잡한 프로그램을 작성할 때 여러 기능을 나누어 관리하는 것이 필수적입니다. 만약 함수를 사용하지 않는다면, 코드가 길어지고 반복되는 부분이 많아져 유지보수가 어려워집니다. 예를 들어, 쇼핑몰 애플리케이션에서 가격 계산 기능을 여러 번 작성한다면, 코드의 중복으로 인해 오류가 발생할 가능성이 높아집니다.

2. 핵심 개념 설명

함수(Function): 특정 작업을 수행하는 코드 블록입니다. 함수를 사용하면 코드의 재사용이 가능해집니다.

함수 정의: 함수를 만드는 과정입니다. 함수의 이름, 매개변수, 반환형을 정의합니다.

함수 호출: 정의된 함수를 실제로 사용하는 것입니다. 호출 시 필요한 인자를 전달합니다.

용어 정리

용어설명
매개변수함수에 전달되는 입력값
반환형함수가 수행한 후 반환하는 값의 데이터 타입
호출정의된 함수를 사용하는 행위

함수를 예를 들어 설명하자면, 요리사가 레시피를 작성하는 것과 비슷합니다. 레시피(함수 정의)는 요리의 방법을 설명하며, 요리사가 손님에게 요리를 제공할 때(함수 호출) 레시피를 참조하여 요리를 합니다.

3. 기본 코드 예제

아래는 두 개의 숫자를 더하는 간단한 함수의 예제입니다.

#include <iostream>
using namespace std;

// 두 숫자를 더하는 함수 정의
int add(int a, int b) {
    return a + b; // a와 b를 더한 값을 반환
}

int main() {
    int result = add(3, 5); // add 함수를 호출하여 3과 5를 더함
    cout << "결과: " << result << endl; // 결과를 출력
    return 0;
}

실행 결과

결과: 8

코드 동작 설명

  1. #include <iostream>: C++의 입출력 기능을 사용하기 위해 iostream 라이브러리를 포함합니다.
  2. using namespace std;: std 네임스페이스를 사용하여 코드에서 std::를 생략할 수 있게 합니다.
  3. int add(int a, int b): 두 정수 a, b를 매개변수로 받아 더한 값을 반환하는 add 함수를 정의합니다.
  4. return a + b;: 매개변수 a와 b를 더한 값을 반환합니다.
  5. int main(): 프로그램의 시작 지점인 main 함수를 정의합니다.
  6. int result = add(3, 5);: add 함수를 호출하여 3과 5를 더해 result에 저장합니다.
  7. cout << "결과: " << result << endl;: 콘솔에 결과를 출력합니다.
  8. return 0;: 프로그램이 정상적으로 종료됨을 나타냅니다.
  9. 4. 실전 활용 예제

    예제 1: 쇼핑몰에서 장바구니에 상품 추가

    쇼핑몰 애플리케이션에서 장바구니에 상품을 추가할 때, 여러 상품의 가격을 더하는 함수를 사용할 수 있습니다.

    #include <iostream>
    using namespace std;
    
    float calculateTotal(float price[], int count) {
        float total = 0;
        for (int i = 0; i < count; i++) {
            total += price[i]; // 각 상품의 가격을 더함
        }
        return total; // 총합을 반환
    }
    
    int main() {
        float prices[] = {99.99, 49.99, 15.00}; // 상품 가격 배열
        int itemCount = sizeof(prices) / sizeof(prices[0]); // 상품 개수
        float totalPrice = calculateTotal(prices, itemCount); // 총 가격 계산
        cout << "장바구니 총 가격: $" << totalPrice << endl; // 출력
        return 0;
    }

    예제 2: 학생 점수 평균 계산

    학생의 점수를 입력 받아 평균을 계산하는 함수입니다.

    #include <iostream>
    using namespace std;
    
    float calculateAverage(int scores[], int count) {
        int sum = 0;
        for (int i = 0; i < count; i++) {
            sum += scores[i]; // 점수를 모두 더함
        }
        return static_cast<float>(sum) / count; // 평균을 반환
    }
    
    int main() {
        int studentScores[] = {88, 76, 90, 85, 95}; // 학생 점수 배열
        int numScores = sizeof(studentScores) / sizeof(studentScores[0]); // 점수 개수
        float averageScore = calculateAverage(studentScores, numScores); // 평균 계산
        cout << "학생 평균 점수: " << averageScore << endl; // 출력
        return 0;
    }

    5. 흔한 실수와 주의사항

    실수 1: 매개변수의 데이터 타입 불일치

    int add(int a, int b) {
        return a + b;
    }
    
    int main() {
        float result = add(3.5, 2.5); // float를 int로 전달
    }
    • 문제점: 매개변수의 타입이 맞지 않아 컴파일 오류 발생.
    • 올바른 코드: 매개변수 타입을 float로 변경하거나 정수로 변환.
    • 실수 2: 반환값을 무시하기

      int add(int a, int b) {
          return a + b;
      }
      
      int main() {
          add(3, 5); // 반환값을 사용하지 않음
      }
    • 문제점: 수행 결과가 의미가 없음.
    • 올바른 코드: 반환값을 변수에 저장하거나 출력해야 함.
    • 6. 정리

    • 함수는 코드의 재사용성과 가독성을 높이는 중요한 요소입니다.
    • 함수를 정의할 때 매개변수와 반환형을 명확히 해야 합니다.
    • 실무에서 자주 사용되는 패턴을 이해하고 활용하는 것이 중요합니다.
    • 다음 학습 주제로는 함수 오버로딩이나 람다 함수를 추천합니다.