프리픽스 헤더

Prefix header

컴퓨터 프로그래밍에서 접두사 헤더는 일부 C 또는 C++ 컴파일러에서 볼 수 있는 기능으로, 모든 파일의 선두에 특정 코드 조각이 삽입되도록 하기 위해 사용됩니다.

개요

CC++ 프로그래밍 언어에서 헤더 파일은 보통 소스 파일의 선두에 있는 컴파일러 디렉티브를 사용하여 컴파일러에 의해 다른 소스 파일에 텍스트가 포함된 파일입니다.프리픽스 헤더는 컴파일러 명령어를 사용하지 않고 컴파일러에 의해 모든 소스 파일의 선두에 자동으로 포함된다는 점에서 일반 헤더 파일과 다릅니다.

프리픽스 헤더는 보통 컴파일 시간을 단축하기 위해 미리 컴파일됩니다.이 목적 이외의 프레픽스헤더를 사용하면, 코드의 유지보수가 어려워져 재사용이 [1]어려워질 가능성이 있습니다.프리픽스 헤더는 크로스 플랫폼서포트에도 사용할 수 있습니다.*NIX 시스템에서는 일반적으로 구성이 사용됩니다.시스템 기능을 설명하는 (autoconf 등을 통해) 빌드 시 생성되는h 헤더 파일그러나 Visual Studio 또는 Xcode와 같은 특정 빌드 시스템을 사용하는 경우 이 config.h를 사용하지 못할 수 있습니다.이를 해결하기 위한 한 가지 방법은 HAV_CONFIG_H가 config.h를 생성하는 빌드 시스템의 사전 정의된 매크로가 되도록 하는 것입니다.이것에 의해, 코드는 config.h 를 #포함할 필요가 있는지를 인식합니다(& 는 이 매크로가 없는 빌드 시스템에서 사용해도 안전합니다).다른 방법으로는 빌드 시스템이 HAVE_CONFIG_H를 정의하는 대신 config.h를 프리픽스헤더로 추가하는 것이 있습니다.물론 단점은 이 헤더가 명시적으로 포함된 컴파일 유닛뿐만 아니라 모든 컴파일 유닛에 추가된다는 것입니다.

Mac OS X에서는 Xcode 빌드 시스템이 새 프로젝트에 대한 접두사 헤더를 자동으로 생성합니다.예를 들어 새로운 코코아 프로젝트에는 다음과 같은 접두사 헤더가 있습니다.

#ifdef __OBJC__     #수입 <코코아/코코아.h> #엔디프 

그 결과, Objective-C 코드 파일에 위의 헤더 파일을 명시적으로 포함한다고 해서 두 번째 포함을 의미하는 것은 아닙니다.이는 다음 이유로 인해#importObjective-C의 지시, 또는 보다 일반적인 지시#includeinclude guard를 사용하기 때문에 이러한 가드는 잊어버릴 수 있지만 소스 코드를 자율적으로 재사용할 수 있도록 하고 라이브러리의 의존성을 명확히 하기 위해 명시적으로 기술할 것을 권장합니다[1].

다른 유형의 프로젝트에도 유사한 접두사 헤더가 생성됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b "4 Ways Precompiled Headers Cripple Your Code • Quality Coding". Quality Coding. 28 February 2012. Retrieved 17 August 2018.

외부 링크