void 함수
함수형은 return문에서 반환해 주는 값의 데이터형과 일치해야 한다. 만약 반환값이 없으면 함수형을 void로 지정할 수 있다. void형 함수에서는 반환값이 없으므로 return문을 사용하지 않는다. 하지만 뒤에 식이 생략된 return문을 void형의 함수인 경우 특별히 사용할 수 있다. 또한, void는 함수를 정의할 때 인수가 없다는 의미로도 사용할 수 있다. 인수가 없는 함수를 정의하는 경우, 괄호 안을 비워도 된다. 하지만 괄호 안에 void를 표기하는 것이 좀 더 바람직한 프로그래밍 작성법으로 볼 수 있다.
예제 1
#include <iostream>
using namespace std;
void xyz(int x); //함수의 원형 선언
int main() //main() 함수
{
xyz(123); //사용자 정의 함수 xyz 호출
return 0;
}
void xyz(int x) //사용자 정의 함수
{
cout << x << endl;
}
결과
123
※ xyz() 함수는 return문이 없으므로 숫자를 출력만 하고 프로그램의 제어를 호출 측으로 이동시킨다. 반환값이 없는 경우, 함수형을 void로 지정해야 한다.
예제 2
#include <iostream>
using namespace std;
void sbs(void); //함수 sbs는 반환값과 인수가 없음을 선언
int main() //main() 함수
{
sbs(); //사용자 정의 함수 sbs 호출
return 0;
}
void sbs(void) //인수가 없는 사용자 사용자 정의 함수
{
cout << "C++ programing!" << endl;
}
결과
C++ programing!
※ 함수 sbs는 반환값이 없으므로 void형 함수이다. 또한 sbs는 인수가 없으므로 괄호 안에 void를 기입한다.
예제 3
#include <iostream>
using namespace std;
void ebs(void); //함수 ebs는 반환값과 인수가 없음을 선언
int main() //main() 함수
{
ebs(); //사용자 정의 함수 ebs 호출
return 0;
}
void ebs(void) //인수가 없는 사용자 사용자 정의 함수
{
cout << "Pass" << endl;
return; //변수가 생략된 return문
cout << "Fail" << endl;
}
결과
Pass
※ void형 함수 내에서 식이 없는 return문을 만나면 현재의 실행 위치와 관계없이 함수가 마무리된다. return문 아래의 문장을 실행되지 않는다.
참고
1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
'C++ 기초 1' 카테고리의 다른 글
[C++] 1-6 함수 호출 방식 (call by reference) (49) | 2023.11.13 |
---|---|
[C++] 1-5 함수 호출 방식 (call by value) (50) | 2023.11.10 |
[C++] 1-4 재귀함수 설명 및 예제 (52) | 2023.11.09 |
[C++] 1-2 함수의 원형 선언 및 위치 (51) | 2023.11.07 |
[C++] 1-1 함수의 정의, 콜론 의미, 만들기 (48) | 2023.11.06 |