차리토 실험실

C언어 예제 #6 (함수 & 메소드)

수차리토 2023. 3. 31. 20:31
  • 함수

함수는 입력값을 받아서 출력값을 돌려주는 코드의 묶음입니다. C언어에서 함수는 다음과 같은 형식으로 정의됩니다

반환형 함수이름(인자1, 인자2, ...)
{
    // 함수 내용
    return 반환값;
}

반환형은 함수나 메소드가 호출된 후 결과값을 반환하는 데이터의 타입을 의미합니다. C언어에서 반환형은 함수의 정의 시, 반환형과 함수 이름 사이에 위치합니다.

반환형이 있는 함수는 호출되면 함수 내부에서 처리된 결과값을 반환하고, 반환값은 함수 호출문이 위치한 곳으로 전달됩니다. 반환형이 없는 함수는 호출되면 처리된 결과값은 반환하지 않고, 함수 내부에서만 사용됩니다.

예를 들어, 두 개의 정수를 입력받아 그 합을 반환하는 함수는 다음과 같이 정의할 수 있습니다.

 

int sum(int a, int b)
{
    int result = a + b;
    return result;
}

위 함수에서 반환형은 int로 정의되어 있으며, result 변수에 저장된 a + b의 결과값이 반환됩니다. 반환형이 int이기 때문에 결과값은 정수형으로 반환됩니다.

반면, 반환형이 없는 함수는 다음과 같이 정의할 수 있습니다.

 

void print_hello()
{
    printf("Hello, world!");
}

위 함수에서는 반환형이 void로 정의되어 있습니다. 이는 함수 내부에서 처리된 결과값을 반환하지 않음을 의미합니다. 따라서 위 함수는 단순히 "Hello, world!"를 출력하는 기능만을 가지고 있습니다

 

  • 메소드

메소드는 객체 지향 프로그래밍에서 사용되는 함수의 일종입니다. 객체 지향 언어에서는 함수를 호출할 때, 해당 함수를 포함한 객체를 명시적으로 지정합니다. 메소드는 이러한 객체의 소속이기 때문에 해당 객체의 데이터를 조작하는 일을 주로 수행합니다.

 

#include <stdio.h>

// 구조체 정의
typedef struct {
    int width;
    int height;
} Rectangle;

// 면적을 계산하는 함수
int area(Rectangle rect)
{
    return rect.width * rect.height;
}

int main()
{
    Rectangle rect = {3, 5};

    int result = area(rect); // 구조체 변수를 인자로 전달하여 면적을 계산

    printf("면적: %d", result);

    return 0;
}