C언어 공부

C언어 기초 - 7-1. 함수의 개념(리턴)

Client Side 2025. 8. 14. 13:15

1. return은 왜 필요한가? ("결과값을 돌려주기 위해서!")

함수(Function)는 특정 작업을 수행하는 코드의 작은 덩어리.

어떤 함수들은 단순히 특정 동작(예: 화면에 메시지 출력)을 수행하는 것으로 끝날 수 있지만,

다른 함수들은 어떤 계산을 하거나, 판단을 내린 후 그 "결과"를 알려줘야 할 때가 있다.

 

이때 함수가 자신이 수행한 작업의 최종 "결과값"을 함수를 호출했던 곳으로 다시 전달해 주기 위해 사용하는 것이 바로 return.

  • 예시: add(5, 3) 이라는 덧셈 함수가 있다면, 이 함수는 5와 3을 더해서 8이라는 결과를 만든다.
  • 이때 이 8이라는 값을 함수를 호출한 곳(대부분 main 함수)으로 돌려주는 역할이 return.

2. return의 기본 사용법 (문법)

C언어에서 return은 다음과 같은 형태로 사용.

c

return 반환값;
  • return : return 키워드.
  • 반환값 : 함수가 돌려주고자 하는 실제 값. 이 값은 함수 선언 시 지정한 **'반환타입'**과 일치해야 함.

3. void 함수 vs return 하는 함수

void는 "아무것도 없음"을 의미.

  • void 함수 (void Function)
    • 함수 이름 앞에 void가 붙으면, 이 함수는 어떤 결과값도 돌려주지 않는다.
    • 특정 동작(예: 화면에 글자 출력, 파일 쓰기 등)만 수행하고 끝나는 함수들이 주로 void 타입으로 선언됩니다.
    • 함수 내부에서 return;이라고만 쓰거나, 아예 return 문을 생략할 수 있음. (함수 끝에 도달하면 자동으로 종료됨)
    void printMessage() { // 어떤 값도 돌려주지 않고, 메시지만 출력하는 함수
        printf("Hello, world!\n");
        // return; // 여기서는 생략해도 무방
    }
    
  • return하는 함수 (값을 돌려주는 함수)
    • 함수 이름 앞에 int, float, char, double 등과 같은 자료형이 붙으면, 이 함수는 반드시 해당 자료형에 맞는 값을 돌려줘야 함.
    • 함수 내부에는 return 반환값; 문이 반드시 포함되어야 함.
    int getSum(int a, int b) 
        int sum = a + b;
        return sum; // 계산 결과인 sum 값을 호출한 곳으로 돌려준다
    }

4. return을 만나면 함수는 즉시 종료됨.

함수 실행 도중 return 문을 만나게 되면, 그 즉시 함수는 종료되고 return 옆에 있는 값을 가지고 함수를 호출했던 곳으로 돌아감.  return 문 뒤에 어떤 코드가 있더라도 그 코드는 실행되지 않음.

5. 예시로 완벽 이해하기

두 숫자의 합계를 계산해서 돌려주는 함수 예시

c

#include <stdio.h>

// 함수 선언: int형 값을 반환하고, int형 매개변수 두 개를 받음
int add(int num1, int num2) {
    int sum = num1 + num2; // 두 숫자를 더해서 sum에 저장
    return sum;            // 계산된 sum 값을 호출한 곳으로 돌려줌
}

int main() {
    int a = 10;
    int b = 20;
    int result;

    // add(a, b) 함수를 호출하고, 함수가 'return'한 값을 result 변수에 저장
    result = add(a, b); // add(10, 20)은 30을 반환하므로, result에 30이 저장됨

    printf("두 숫자의 합: %d\n", result); // 결과 출력: 30

    return 0; // main 함수도 운영체제에게 "잘 끝났습니다"라는 의미로 0을 반환
}

이처럼 return은 함수가 작업을 마치고 그 결과를 필요한 곳으로 전달하는 연결 통로와 같은 역할을 한다.

 

 

사칙연산 함수 만들기

 

#include <stdio.h>

int add(int a, int b)
{ 
   return a+b;
}

int subtract(int a, int b)
{
    return a - b;
}

int mutiply(int a, int b)
{
    return a * b;
}

int devide(int a, int b)
{
    return a / b;
}

int main() {    
    int A = add(1, 2);
    int B = subtract(3, 1);
    int C = mutiply(2, 3);
    int D = devide(6, 2);
    printf("%d, %d, %d, %d \n", A,B,C,D);
    return 0;
}