헤더 파일에 있는 #ifndef, #define는 뭐죠?

조회수 4017회

저런 소스 코드를 봤는데 뭘 하는 건가요?

소스코드

#ifndef HEADERFILE_H
#define HEADERFILE_H
...
#endif

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    Include guards라고 합니다

    헤더 파일이 include 되면 HEADERFILE_H과 같은 unique value가 정의되어 있는가를 검사하지요 만약 정의되어 있지 않다면 정의해주고 다음 코드로 넘어갑니다.

    헤더 파일이 다시 include 되는 경우에는 첫 줄의 ifndef에서 fail 하며 빈 파일을 include 한 것과 같은 효과를 냅니다. 이런 행위를 함으로써 type이나 enum, 전역 변수 등의 identifier가 여러 번 정의되는 것을 막아줍니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.