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;
}
'C언어 공부' 카테고리의 다른 글
| C언어 기초 - 8-1. 포인터의 개념 연습문제 (0) | 2025.08.15 |
|---|---|
| C언어 기초 - 8. 포인터의 개념 (2) | 2025.08.14 |
| C언어 기초 - 7. 함수의 개념 (매개변수) (5) | 2025.08.14 |
| C언어 기초 - 6-2. 중첩반복문 (0) | 2025.08.14 |
| C언어 기초 - 6-1. 반복문 심화문제 (0) | 2025.08.13 |