Language/C++

[C++] 헤더 가드

마탁이 2020. 12. 15. 16:22

1. 중복 정의 문제

  - 식별자는 하나의 정의만 가질 수 있다.

    따라서 변수 식별자를 두 번이상 정의한 프로그램은 컴파일 오류가 발생한다.

  - 함수를 두 번 이상 정의하는 프로그램도 컴파일 오류가 발생한다.

 

2. 헤더 가드

  - 헤더 가드라는 메커니즘을 통해 위 문제를 해결할 수 있다. (실제로 이전 회사의 코드에서 많이 사용)

  - 헤더 가드는 조건부 컴파일 지시자를 이용한다.

    e.g) 

      #ifndef MATH_H

      #define MATH_H

 

3. #pragma once

  - 현재 많은 최신 컴파일러는 #pragma 지시자를 이용하여 단순한 헤더 가드를 지원한다.

  - C++ 언어의 공식적인 부분이 아니므로 모든 컴파일러가 지원하는 것은 아니다.

    따라서 호환성을 위해 헤더 가드를 사용하는 것이 좋다.

'Language > C++' 카테고리의 다른 글

[C++] 포인터, 더블 포인터 사용  (0) 2020.12.15
[C++] 헤더 파일  (0) 2020.12.15
[C++] 포인터와 배열의 차이  (0) 2020.12.15
[C++] 캐스트 연산자  (0) 2020.12.15
[C++] RTTI (RunTime Type Information)  (0) 2020.12.15