본문 바로가기

C++ 기초 1

[C++] 1-2 함수의 원형 선언 및 위치

1. 함수의 원형

   사용하는 함수의 수가 적은 경우에는 함수가 main() 함수 앞에 위치해도 상관없다. 하지만 사용하는 함수의 수가 많고, 복잡한 경우에는 컴파일에 문제가 발생할 수가 있다. 그런 경우, 이들 함수의 원형을 main() 함수 앞에 모아서 선언하면 이들 함수에 관한 정보를 컴파일러에게 알려줘서 해결할 수 있다. 실제로 함수의 원형을 main() 함수 앞에 선언하고 함수의 정의를 main() 함수 뒤에 위치하면, 편리하게 프로그래밍할 수 있다. 

   아래 예제들처럼, 함수의 원형은 사용자가 직접 main() 함수 앞에 선언해야 한다. 함수의 원형을 선언하고 끝에 세미콜론(;)을 기입해야 한다. 

 
예제 1
#include <iostream>
using namespace std;
int sum(int, int);		//함수의 원형 성언 // 가인수명 x, y 생략 가능

int main()
{
	int a, b, c;
	a = 10, b = 5;
	c = sum(a, b);
	cout << "c=a+b=" << c << endl;
	return 0;
}

int sum(int x, int y)	// 사용자 정의 함수
{
	int z;
	z = x + y;
	return z;
}
결과
c=a+b=15
※ sum() 함수의 원형을 main() 함수 앞에 선언하고 sum() 함수를 main() 함수 뒤에 정의할 수 있다. 
예제 2
#include <iostream>
#include <iostream>
using namespace std;
int add(int x1, int y1);	//덧셈 연산 함수의 원형 선언
int mul(int x2, int y2);	//곱셈 연산 함수의 원형 선언

int main()
{
	int a, b, c, d;
	cout << "a?b?";
	cin >> a >> b;
	c = add(a, b);			// 덧셈 함수 호출
	d = mul(a, b);			// 곱셈 함수 호출
	cout << "a+b=" << c << ", a*b=" << d << endl;
	return 0;
}

int add(int x1, int y1)		//덧셈 연삼 함수의 정의
{
	int z;
	z = x1 + y1;
	return z;
}

int mul(int x2, int y2)		//곱셈 연산 함수의 정의
{
	int k;
	k = x2 * y2;
	return k;
}
결과
a? b? 10 30 <Enter>
a+b=30, a*b=300
※ add() 함수와 mul() 함수의 원형을 main() 함수 앞에 선언하고, 각각의 함수를 main() 함수 뒤에 정의하였다. 
※ 함수들의 원형을 선언하거나 함수들을 정의할 때 각 함수들의 위치, 순서는 상관없다.

 

참고

1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13