✅ 목표 (Goal)

✅ 이전 챕터에서 함수 중복 정의 문제를 코드를 보고 해결했다.

이전 챕터에서 (사용자가 원치 않더라도) 함수가 중복정의되는 문제 발생했다.

각 헤더 파일과 호출되는 순서를 살펴보고

중복정의가 되지 않도록 코드를 수정하였다.

하지만, 이는 매우 좋지 않다고 하였다.

그렇다면 어떻게 해결하면 좋을까?

이때 헤더가드를 사용하면 해결된다.

헤더 가드는 중복 정의를 막는다.

✅ 헤더 가드를 적용한 예제 및 설명

#include "horse.h"
#include "donkey.h"

int main() {
    neigh();
    hee_haw();
    return (0);
}
#ifndef ABC // (1) 해당 프로젝트에서 겹치지만 않은 유일한 이름을 적으면 된다.
#define ABC // 이렇게 아무 이름이나 적는건 좋지 않아.

void neigh() {} // 말, 히힝

#endif
#ifndef DEF
#define DEF

#include "horse.h"
void hee_haw() {} // 당나귀, 히호

#endif