계산기를 만드는 소스코드를 헤더파일과 CPP 파일로 분리해서 코드를 작성해보자
func.h(헤더파일)
// 함수의 기능은 구현하지 않고 선언만 함
int Add(int a, int b);
- 헤더파일에서는 함수의 기능을 구현하지 않고 이런 함수가 있다라고 선언만 함
func.cpp(구현파일)
// include는 전처리기로 func.h 파일의 내용을 모두 가져와서 #include 한 파일에 넣어준다
#include "func.h"
int Add(int a, int b) {
return a + b;
}
- 헤더파일에서 선언된 함수를 구현
- 선언된 함수가 존재하는 헤더파일을 참조하기 위해 #include 라는 전처리기를 사용한다.
구현하지 않은 함수를 호출하면 링크 단계에서의 에러발생한다.
void test();
int main() {
test();
return 0;
}
컴파일 단계에서는 문제가 없었지만... 컴파일이 끝나고
test()라는 함수를 호출 할 때 기능 구현이 안됬기 때문에 링크단계의 에러가 발생함