더북(TheBook)

apple()함수를 호출해 5와 2를 전달하니 3이 반환되어 ‘사과 5개 중에서 2개를 먹으면 3개가 남습니다.’라고 출력합니다.

코드에서 apple()함수를 호출해 반환받은 값을 ret 변수에 저장해서 printf()문으로 출력했습니다. 그런데 반환값을 따로 저장할 필요 없이 printf()문에 함수 호출을 넣어 바로 반환값을 출력할 수도 있습니다. 사과 10개 중에 4개를 먹고 남은 개수를 출력해 봅시다. 기존 함수 호출과 printf()문 대신에 다음과 같이 작성합니다.

5.3.5 반환값과전달값이있는함수.c

// int ret = apple(5, 2); 
// printf("사과 5개 중에서 2개를 먹으면 %d개가 남습니다.\n", ret);
printf("사과 %d개 중에서 %d개를 먹으면 %d개가 남습니다.\n", 10, 4, apple(10, 4));

printf()문에 apple()함수를 넣어 바로 호출합니다. apple()함수는 10과 4를 전달받아서 10 - 4, 즉 6을 반환합니다. printf()문에는 %d가 3개 있으니 정수 3개를 받을 수 있습니다. 순서대로 10, 4와 apple(10, 4) 함수 호출로 반환되는 6이 %d에 매칭되어 출력됩니다. 한번 실행해 볼까요?

실행결과 icon_con

전달값과 반환값이 있는 함수입니다.
사과 10개 중에서 4개를 먹으면 6개가 남습니다.

예상한 대로 잘 출력됩니다. 이처럼 printf()문에서 직접 함수를 사용할 수 있다는 것도 알아 두세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.