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

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

소스코드

#ifndef HEADERFILE_H
#define HEADERFILE_H
...
#endif

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    Include guards라고 합니다

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

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

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

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.