wellcome_공부일기

CLion | 헤더가드(Header Guard)란? 본문

CLion 사용법

CLion | 헤더가드(Header Guard)란?

ma_heroine 2020. 4. 27. 20:40

<목차>

1. 헤더가드(Header Guard)란?

2. 헤더가드(Header Guard)가 필요한 이유

2. CLion에서 헤더가드(Header Guard) 사용법

 

 

헤더가드(Header Guard)란?

헤더가드는 헤더 파일내의 작은 코드로, 한번 이상 헤더 파일의 내용이 포함되지 않도록 이를 방지하는 역할을 합니다. 

헤더가드는 전처리기의 사용을 통해 실행이 되어집니다. C/C++ 전처리기는 모두 #이라는 문자로 시작을 합니다. 

ex)  #include, #define  -http://faculty.cs.niu.edu

 

 

헤더가드(Header Guard)가 필요한 이유

팀 프로젝트가 시작되고 프로그램이 복잡해지면 헤더파일(Header File)을 파일 내에 많이 추가하면서 중복으로 올릴 수 가 있습니다. 예를 들어 2번째 줄에서 주석을 처리한 add함수가 원래 존재했다면, doSomething함수 파일에도 add함수가 추가되어 있어, main함수 파일에는 add함수가 총 2번이 선언되고, 이는 중복임으로 오류가 발생할 수 있습니다. 

 

mian함수 파일 

 

doSomething함수 파일

 

add함수 파일

 

CLion에서 헤더가드(Header Guard) 사용법

CLion에서 헤더가드(Header Guard)는 헤더파일(Header File)을 만들 때 자동으로 생성됩니다.

아래 사진과 같이 #ifndef 와 #define 그리고 #endif가 있습니다. 

헤더파일(Header File) 내의 코드는 #ifndef 와 #define 사이에 작성을 해주고, 작성이 끝났을 땐 #endif가 있어야 합니다.

 

#ifndef : if not definite 만약 정의되지 않았다면

#define : define 정의하라

----------------------------------------------------------

#endif : 끝

 

헤더가드(Header Guard)가 있다면 헤더파일 내 내용이 중복으로 선언되었더라도 오류가 일어나지 않습니다.

Visual Studio는 헤더가드를 #program once로 생성합니다. -> 컴파일러마다 헤더가드를 다른 코드로 사용합니다. 

 

Comments