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

조회수 6401회

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

소스코드

#ifndef HEADERFILE_H
#define HEADERFILE_H
...
#endif

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    Include guards라고 합니다

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

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

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)