본문 바로가기
  • 부자가 될 남자
프로그래밍/C

[C언어] 반환값 return에 대하여

by ㅍ우주 2023. 5. 15.

반환값이란, 함수가 실행된 이후에 함수의 잔여물이라고 생각하면 된다.

바퀴벌레가 죽으면 알을 깐다는 말이 있다. 반환값은 알과 같은 존재라고 생각하면 된다.

바퀴벌레가 죽는다? => 함수 내의 코드가 모두 실행됨.

바퀴벌레가 알을 낳는다? => 함수에게 값이 주어진다.

한가지 예제를 통해 이해시켜보겠다.

 

*참고로 반환값이 존재하는 함수는 반환형 int로 함수를 정의하며, 반환값이 존재하지 않는 함수는 반환형 void로 함수를 정의한다.

#include <stdio.h>

int function_with_return() {
    printf("반환값이 존재하는 함수입니다.\n");
    return 10;
}

int main(void) {
    int num = function_with_return();
    printf("num의 값은%d 입니다.", num);
}

num 변수에 function_with_return 함수를 대입하였는데, funtion_with_return 함수는 10이라는 값이 반환 되기 때문에, num변수에 10이 들어갔음을 확인할 수 있다.

 


#include <stdio.h>

void function_without_return() {
    printf("반환값이 존재하지 않는 함수입니다.\n");
    return 10;
}

int main(void) {
    int num = function_without_return();
    printf("num의 값은%d 입니다.", num);
}

위와 상반되게, 반환값이 없는 함수를 만들어보았다.

반환값이 없는 함수이기에 return값이 없어야하며, return값이 존재할 수 조차 없다.

따라서 return 10;에서 오류가 발생할 것이며, int num = function_without_return라는 코드에서 또한 오류가 발생할 것이다.

앞서 설명한 두가지 오류가 존재함을 말해주고 있다.