C++

함수 원형은 왜 필요한가?

(ꐦ •᷄ࡇ•᷅) 2025. 1. 8. 10:50

함수 원형은 컴파일러에게 함수의 인터페이스를 알려 준다. 즉, 리턴값이 있으면 그 리턴값의 데이터형을 컴파일러에게 알려 준다. 또한 매개변수의 개수와 각 매개변수의 데이터형을 컴파일러에게 알려 준다.

 

double cube(double x);

int main()
{
	double volume = cube(side);
}

 

 

1.

함수 원형은 cube()가 하나의 double 형 매개변수를 가진다는 사실을 컴파일러에게 알려 준다. 프로그램이 cube()에 매개변수를 제공하는 데 실패하면, 컴파일러는 함수 원형에 근거하여 에러를 검출한다.

 

2.

cube() 함수는 계산을 끝냈을 때 리턴값을 CPU의 레지스터나 메모리의 어떤 지정된 위치에 넣는다. 그러면 호출한 함수가 그 위치에서 값을 꺼내온다. cube()가 double형이라는 사실을 함수 원형이 컴파일러에게 알려 주므로, 컴파일러는 그 위치에서 몇 바이트를 꺼내고 어떻게 처리해야 하는지 알고 있다. 이 정보가 없다면 컴파일러는 일할 수 없다.