6-1-마.void형 함수

함수는 작업한 결과를 리턴값으로 돌려줄 수 있는데 모든 함수가 리턴값을 가지는 것은 아니다. 리턴할 값이 없는 함수도 있는데 이런 함수를 void형 함수라 한다. 정수형 값을 리턴하면 정수형 함수, 실수형 값을 리턴하면 실수형 함수 등으로 함수가 리턴하는 값의 데이터형이 곧 함수의 타입(type)이 되는데 void형 함수는 아무런 값도 리턴하지 않는 함수다.

단순히 "삐" 하는 효과음을 낸다든가, 미리 정해진 메시지를 출력한다든가 하는 함수들은 특별히 호출원으로 돌려줄 값이 없다. 이런 함수를 정의할 때는 함수 타입에 void라고 적는다. void형 함수는 내부적으로 작업만 할 뿐이지 계산 결과를 리턴하지 않으므로 호출원에서는 함수를 호출만 하며 리턴값을 대입받거나 사용하지 말아야 한다. 다음이 void형 함수의 예이다.

 

: voidFunc

#include <Turboc.h>

 

void PrintWait()

{

     printf("지금 열심히 작업중입니다. 잠시만 기다려 주세요\n");

}

 

void main()

{

     PrintWait();

     printf("1+2=%d\n",1+2);

}

 

PrintWait 함수는 사용자에게 잠시 기다리라는 메시지를 출력하는 기능을 가지는데 이 메시지를 출력하는 것만이 본연의 임무이므로 호출원으로 리턴할 값이 없다. 그래서 함수의 타입이 void형으로 정의되어 있다. 호출원에서는 대기 메시지를 출력할 필요가 있을 때 언제든지 이 함수를 호출하기만 하면 된다.

void 형 함수도 return문을 사용할 수는 있으나 돌려줄 값이 없으므로 return문 뒤에 어떤 값을 쓸 수는 없다. return; 과 같이 return 명령만 적는다. 함수의 중간에서 리턴하지 않는다면 일부러 return문을 따로 적어줄 필요는 없다. 함수가 끝나면 자동으로 호출원으로 돌아가므로 함수 중간에서 리턴할 때만 return문이 필요하다.