inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

분할 컴파일

헤더파일 질문입니다

246

hjwoo1028

작성한 질문수 1

2

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

C++

답변 1

1

판다코딩

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

-

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

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

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

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

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

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

같습니다.

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

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

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

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

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

null 문자가 포함되면 왜 뒤에 불필요한 것들이 사라지나요?

0

567

1

강의 중 궁금한게 있습니다.

0

409

0

포인터 연산 강의

0

376

1

강의중 궁금한 내용이 있습니다

2

493

3

(int*)이 어떤 원리인건지 잘 이해가 안되요 ㅜ

1

459

0

char형과 char 배열을 차이점이 뭔가요

0

391

0

오토를 맹신하지 말라는 것이 무슨 뜻인가요?

0

340

1

안녕하세요 class의 멤버함수에 관련하여 질문이 있습니다.

0

250

0

강의 잘 듣고있습니다. 그런데 소스코드에 오타가 있는듯합니다.

1

335

0

포인터를 증가시키거나 감소시킨 상태에서는 delete 사용이 불가능한가요?

0

460

0

const float PI =3.14159265; 로 선언하고 원의 넓이를 구할 때 궁금한 것이 있습니다.

0

665

1

iosteam 헤더 파일 중복

0

367

1

함수 뒤 세미콜론

0

321

0

함수는 원본이 아닌 복사본을 사용한다는 말에 대해서 질문있습니다

0

245

0

sizeof arr에서

0

421

3

포인터를 이용한 주소값이 이상합니다

0

291

1

바이트와 관련하여서 질문이 있습니다

0

267

1

출력이 안되요

0

281

0

마지막에 main.cpp 에서

1

264

0

예제코드 오타 있어요

1

205

0

함수의 대괄호 뒤에 ; 가 붙는것과 안뭍는것의 차이가 뭔가요?

0

222

0

new/delete 연산자

1

260

1

컴파일에러

1

282

1

string에서 문자열 길이

1

268

1