인프런 커뮤니티 질문&답변

hjwoo1028님의 프로필 이미지
hjwoo1028

작성한 질문수

[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문

분할 컴파일

헤더파일 질문입니다

작성

·

193

2

struct.h에는 함수의 원형만 정의를 하고, 함수의 내용은 fun.cpp에 작성을 하였는데 왜 헤더파일만 include하는 것만으로 함수가 실행이 되는지 모르겠습니다.

답변 1

1

판다코딩님의 프로필 이미지
판다코딩
지식공유자

죄송합니다. 새로운 강의의 오픈 준비로 답변이 많이 늦었습니다.

-

CPP은 프로그램을 구성하는 함수들을 별개의 파일에 넣는 것을 권장하는 언어입니다.

그래서 통상적으로 하나의 파일을 아래의 세 분류로 나누어 관리합니다.

  1. 구조체 선언 혹은 구조체를 사용하는 함수들의 원형이 있는 헤더 파일
  2. 구조체에 관련된 함수들의 코드가 들어 있는 소스 파일
  3. 구조체에 관련된 함수들을 호출하는 코드가 있는 소스 파일

질문자님이 궁금하신 사안은

3번의 파일에서 2번의 파일을 따로 명시하지 않았음에도,

어떻게 2번의 코드에 있는 내용을 사용할 수 있는가?

같습니다.

보다 근본적으로 설명해 드릴려면, CPP의 다중 파일 프로그램에서 컴파일 과정을 설명드려야 할 것 같은데,

내용이 너무 도프해질 것 같아 간략하게 설명드리면

main 함수에서 컴파일 명령이 실행될 때, 전처리기가 포함된 파일들을 소스코드에 결합시켜주기 때문입니다.

아래의 게시글을 살펴보시면 더 자세한 설명을 확인하실 수 있을 것 같습니다.

https://stackoverflow.com/questions/6264249/how-does-the-compilation-linking-process-work

hjwoo1028님의 프로필 이미지
hjwoo1028

작성한 질문수

질문하기