47.2 덧셈 함수 만들기

이번에는 매개변수를 사용하여 두 정수를 더한 결과를 반환하는 함수를 만들어보겠습니다. 함수에서 매개변수를 여러 개 사용하려면 각 매개변수를 , (콤마)로 구분합니다.

반환값자료형 함수이름(자료형 매개변수1, 자료형 매개변수2)
{
}

다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.

add_function.c

#include <stdio.h>

int add(int a, int b)    // 반환값 자료형은 int, int형 매개변수 두 개 지정
{
    return a + b;    // 매개변수 a와 b를 더한 결과를 반환
}

int main()
{
    int num1;

    num1 = add(10, 20);     // 함수를 호출할 때 10과 20을 전달. 10과 20을 더한 값인 30이 반환됨

    printf("%d\n", num1);   // 30

    return 0;
}

실행 결과

30

먼저 함수를 정의할 때 괄호 안에 int aint b를 지정합니다. 이렇게 하면 함수를 호출했을 때 넣은 값이 ab에 순서대로 저장됩니다. 그리고 중괄호 안에서는 ab를 더하여 반환합니다.

int add(int a, int b)    // 반환값 자료형은 int, int형 매개변수 두 개 지정
{
    return a + b;    // 매개변수 a와 b를 더한 결과를 반환
}

함수를 호출할 때 괄호 안에 10과 20을 넣어주면 반환값으로 30이 나옵니다. 단, 함수에 정의된 매개변수 개수만큼 값을 넣어야 하며 적거나 많게 넣을 수는 없습니다.

num1 = add(10, 20);     // 함수를 호출할 때 10과 20을 전달. 10과 20을 더한 값인 30이 반환됨

이처럼 매개변수를 사용해서 간단하게 두 정수를 더할 수 있습니다.

그림 48‑2 덧셈 함수와 매개변수
참고 | 매개변수, 파라미터, 인자, 인수, 아규먼트

프로그래밍을 배우다 보면 함수 안에 들어가는 값을 뜻하는 용어가 꽤 많다는 것을 알 수 있습니다. 여기서 각 용어는 미묘하게 차이가 있습니다.

  • 매개변수, 파라미터(parameter), 형식 매개변수(formal parameter), 인자: 함수 바깥에서 전달된 값이 저장되는 변수를 뜻합니다.
//          매개변수
//          ↓     ↓
int add(int a, int b)
{
    return a + b;
}
  • 인수, 전달인자, 아규먼트(argument), 실행 전달인자(actual argument): 함수를 호출할 때 전달하는 값이나 변수를 뜻합니다.
//   인수
//   ↓  ↓
add(10, 20);

즉, 따지고 보면 같은 변수나 값을 칭하지만 함수를 기준으로 봤을 때 용어가 다를 뿐입니다. 이런 차이가 있다는 점만 기억해두세요.

이 책에서는 매개변수와 인수를 구분해서 사용하겠습니다.