C++

[C++] 헤더 가드란?

sweetnew 2021. 9. 10. 20:13
반응형

헤더 가드는 사용자 정의 헤더 파일을 생성하면서 중복되는 함수의 사용을 방지해 주며, 두 가지 방법으로 사용할 수 있다.

1. #pragma once

visual studio에서 헤더 파일을 생성하게 되면 자동으로 입력되어 헤더 파일이 생성된다. 함수의 재 정의를 방지해 준다.

 

// add.h
#pragma once   // 헤더 가드

int add(int a, int b){
   return a + b;
}

 

2. ​#ifndef ~ #endif

 

#ifndef는 'if not define'으로써 만약 정의되어 있지 않으면, #define~#endif까지 정의해 준다. 반면, 정의되어 있다면 #define~#endif까지 정의하지 않는다.

 

// add.h
#ifndef ADD   // 만약 ADD가 정의되어 있지 않으면
#define ADD   // ADD를 정의한다. 정의는 #endif까지 한다.

// ADD 정의
int add(int a, int b){
   return a + b;
}

#endif
반응형