C++

[C++] 헤더파일 작성하기

kugnuoy 2024. 1. 15. 16:18

작성하는 모든 함수를 한 소스코드에 선언하고 사용하는 것은 유지보수를 어렵게 한다.

그래서 헤더파일을 직접 생성해 이러한 부담을 줄여줘야 하는데,

 

두 정수를 더해 리턴하는 add(int x, int y)를 포함하고 있는 헤더파일을 만들고 적용시켜보자

1. 헤더파일 add.h 작성

header guard는 main.h 에서 식별자를 중복으로 사용하는 것을 막기 위한 것으로

ADD_H 가 이미 정의되지 않았을 때 #if 1

ADD_H 가 이미 정의되었을 때 #if 0

이 되면서 중복 사용 문제를 해결한다.

**조건부 컴파일 지시자 사용

https://20201215.tistory.com/97

(ifndef : if not defined / ifdef : if defined)

// 1. header guard
#ifndef ADD_H
#define ADD_H

// 2. .h 파일의 실제 내용: declariation
int add(int x, int y); // add() 함수 원형(function prototype)
... //추가로 함수원형을 더 생성해도 된다.

// 3.
#endif

2. add.cpp 작성

int add(int x, int y)
{
    return x + y;
}

3. main 에서 호출

#include <iostream>
#include "add.h"   // add.h 헤더파일 포함

int main()
{
    std::cout << "The sum of 3 and 4 is " << add(3, 4) << std::endl;
    return 0;
}

4. 결론

컴파일러가 #include "add.h" 를 컴파일하면 add.h의 내용을 현재 파일의 그 라인 시점에 복사한다. 

컴파일, 링크되는 과정은 다음과 같다.