함수의 기본

Jaemyeong Lee·2024년 8월 8일
0

FastCampusC++

목록 보기
38/78

C++ 함수의 기본 예제 분석

C++ 프로그래밍에서 함수는 코드의 재사용성과 가독성을 높이는 중요한 요소입니다. 이번 포스트에서는 함수의 기본적인 사용법과 함께 예제 코드를 분석해 보겠습니다.

전체 코드

#include <iostream>

using namespace std;

// 함수의 프로토타입 선언
int csum(int x, int y);
int cabs0(int x);
int cabs1(int x);

int abssum(int x, int y)
{
    // cabs0, cabs1, csum에 대한 선언이 필요하다.
    // abssum 입장에서는 cabs0, cabs1, csum
    int ax = cabs0(x);
    int ay = cabs1(y);
    return csum(ax, ay);
}

int csum(int x, int y)
{
    return x + y;
}

int cabs0(int x)
{
    return x >= 0 ? x : -x;
}

int cabs1(int x)
{
    if (x >= 0)
        return x;
    else
        return -x;
}

void print0(int x, int y)
{
    cout << x << endl;
    if (y < 0)
        return; // 함수 종료 시 return을 사용할 수 있다

    cout << y << endl;
}

void print1(void) // 인자가 없는 경우 void를 생략할 수 있다
{
    cout << "Hello World" << endl;
}

int main(int argc, char* arvc[])
{
    {
        // main 함수의 반환
        // 0 : 정상 종료
        // 0아 아님 : 비정상 종료
        //return 0;
    }
    {
        // 실행 시 넘겨진 인자 출력
        // 0번에는 실행한 파일명 출력
        for (int i = 0; i < argc; ++i)
        {
            cout << arvc[i] << endl;
        }
    }
    {
        // 사용자 정의 함수 사용
        cout << csum(5, 10) << endl;
        cout << cabs0(10) << endl;
        cout << cabs1(-10) << endl;
    }
}

코드 분석

  1. 헤더 파일 포함 및 네임스페이스 사용

    #include <iostream>
    using namespace std;
    • #include <iostream>: 표준 입력 출력 스트림을 포함합니다.
    • using namespace std;: std::를 생략하고 표준 라이브러리의 요소를 사용할 수 있게 합니다.
  2. 함수 프로토타입 선언

    int csum(int x, int y);
    int cabs0(int x);
    int cabs1(int x);
    • 함수가 사용되기 전에 컴파일러에게 함수의 존재를 알리기 위해 사용합니다.
  3. 함수 정의

    • abssum 함수: 두 정수의 절댓값을 더한 결과를 반환합니다.
      int abssum(int x, int y)
      {
          int ax = cabs0(x);
          int ay = cabs1(y);
          return csum(ax, ay);
      }
    • csum 함수: 두 정수의 합을 반환합니다.
      int csum(int x, int y)
      {
          return x + y;
      }
    • cabs0 함수: 정수의 절댓값을 반환합니다 (삼항 연산자 사용).
      int cabs0(int x)
      {
          return x >= 0 ? x : -x;
      }
    • cabs1 함수: 정수의 절댓값을 반환합니다 (if 문 사용).
      int cabs1(int x)
      {
          if (x >= 0)
              return x;
          else
              return -x;
      }
  4. 출력 함수

    • print0 함수: 두 정수를 출력하고, 두 번째 정수가 음수일 경우 함수 종료.

      void print0(int x, int y)
      {
          cout << x << endl;
          if (y < 0)
              return;
      
          cout << y << endl;
      }
    • print1 함수: "Hello World" 문자열을 출력합니다.

      void print1(void)
      {
          cout << "Hello World" << endl;
      }
  5. main 함수

    • 프로그램의 시작 지점으로, 여러 부분으로 나누어 설명합니다.
      int main(int argc, char* arvc[])
      {
          {
              // main 함수의 반환
              // 0 : 정상 종료
              // 0아 아님 : 비정상 종료
              //return 0;
          }
          {
              // 실행 시 넘겨진 인자 출력
              // 0번에는 실행한 파일명 출력
              for (int i = 0; i < argc; ++i)
              {
                  cout << arvc[i] << endl;
              }
          }
          {
              // 사용자 정의 함수 사용
              cout << csum(5, 10) << endl;
              cout << cabs0(10) << endl;
              cout << cabs1(-10) << endl;
          }
      }

주요 포인트

  • 함수의 선언과 정의

    • 선언: 함수가 어떤 매개변수를 받고 어떤 타입의 값을 반환하는지를 컴파일러에게 알려줍니다.
    • 정의: 함수의 실제 구현부입니다.
  • 절댓값 함수의 다양한 구현

    • cabs0cabs1은 같은 기능을 하지만 구현 방식이 다릅니다. cabs0은 삼항 연산자를, cabs1은 if 문을 사용합니다.
  • main 함수의 구조

    • main 함수는 프로그램의 진입점입니다.
    • argcarvc를 사용하여 프로그램 실행 시 전달된 인자를 처리할 수 있습니다.
  • 프로그램의 종료 코드

    • 일반적으로 return 0;을 사용하여 정상 종료를, 0이 아닌 값을 반환하여 비정상 종료를 나타냅니다.
profile
李家네_공부방

0개의 댓글