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


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

소스코드

#ifndef HEADERFILE_H
#define HEADERFILE_H
...
#endif
  • 2016년 01월 08일에 작성됨

조회수 313


1 답변


좋아요
0
싫어요
채택취소하기

Include guards라고 합니다

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

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

  • 2016년 01월 08일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close