프로그래밍

include 가드

디비노 2012. 12. 5. 18:07

include 가드는 동일한 컴파일 단위에 같은 파일이  두번 이상 포함되는 것을 막는다.

// Game.h
#ifndef GAME_H_
#defind GAME_H_
//...
#endif // GAME_H_

이런식으로 대부분의 C와 C++ 프로그램에 자주 사용된다.

다른 방법으로는 #pragma 의 이용이 있다.

#pragma 는 동일한 파일을 여러번 포함하는 것을 방지하는 include 가드의 역할뿐 아니라,

파일을 두번 여는것도 방지하므로 컴파일의 속도를 증가시켜 줄 수도 있다.

그러나 #pragma 는 C++ 표준에 포함되어있지 않다.

그러므로 보통 다음과같이 작성된다.

// Game.h
#ifndef GAME_H_
#defind GAME_H_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)

//...

#endif // GAME_H_

_MSC_VER >= 1200 은 MS 컴파일러 특정 버전 이후에서만 #pragma once 를 이용한다는 것을 의미한다.