헤더파일과 구현파일의 연결 인식은 어떻게 해서 되는가 _ 질문과 이현창님 답
( 메일로 답변을 받았는데, 여기에도 올립니다. - 같이 공유하자는 저자님의 말씀이 계셔서..)
여러 개의 파일을 헤더 파일과 구현 파일로 나누어 사용하는 방법에 대해 잘 읽어 보았습니다.
예를 들어,
// example.cpp
#include "A.h"
int main()
{
A1();
return 0;
}
// A.h
void A1();
void A2();
// A.cpp
void A1()
{
....
}
void A2()
{
.....
}
이렇게 되어 있다면요. 저자님 말씀대로 example.cpp 안의 내용은 실제로
이렇게 되잖아요.. ===>
void A1();
void A2();
int main()
{
A1();
return 0;
}
질문 >> 이렇게 되면, void A1(); 이라는 원형만 있고 A1()함수의 정의 부분은 없는 모습이잖요?
그런데, 어떻게 .h 헤더파일만 삽입하면 .cpp 구현파일에 있는 함수 정의부분이
자동으로 연결이 되는지 알 수가 없네요.
좀 가르쳐 주세요...
/////////
안녕하세요 이현창입니다. ^^
소스코드가 실행파일이 되는 사이에는 2가지 작업이 수반됩니다.
컴파일과 링크 입니다.
이 작업을 해주는 프로그램을 각각 컴파일러, 링커라고 부릅니다.
인환님께서 질문해주신 어떻게 자동으로 연결되냐 의 답은
바로 링커가 해주고 있습니다.
( 링커를 한글로 해석해보연 연결해주는 애 정도가 되겠죠 ^^ )
더 궁금하신 내용은
컴파일러(compiler), 링커(linker)에 대한 자료를 찾아보시면
좋을 듯 합니다. 결국에는 꼭 아셔야 하는 내용이니
시간이 아깝다 생각치 마시고 열심히 찾아보시기 바랍니다. ^^
감사합니다.