2011-02-10 3 views
7

정확하게 미리 컴파일 된 헤더 란 무엇입니까? 그들은 언제 사용됩니까?미리 컴파일 된 헤더

+2

[Precompiled Headers] 가능한 복제본 (http://stackoverflow.com/questions/1293538/precompiled-headers). 또한 참조하십시오 : [왜 미리 컴파일 된 헤더 (C/C++)를 사용합니까?] (http://stackoverflow.com/questions/903228/why-use-precompiled-headers-c-c) –

답변

7

미리 컴파일 된 헤더는 컴파일 과정에서 사용되는 최적화입니다.

기본적으로 동일한 정의 및 환경을 사용하여 stdio.h과 같은 것을 컴파일하면 결과가 매번 동일 할 것이라고 가정 할 수 있습니다.

그래서 컴파일러는 해당 헤더의 "컴파일 된"버전을 기억하므로 다시 할 필요가 없습니다. 바로 다음

#define XYZZY 42 
#include <stdio.h> 
#include <stdlib.h> 

첫 번째는 완전히 컴파일하지만 상태를 기억 : 소스 파일의 모든 사람이로 시작하면 현실에서

, 그것은 때문에 차이가 헤더의 초기 그룹 경향이있다 그 세 번째 줄. 다음 파일은 나머지 세 줄을 계속 컴파일하기 전에이 세 줄을 완전히 버리고 저장된 상태를로드 할 수 있습니다.

처음으로이 기능은 Windows에서 해당 크기의windows.h 헤더 파일로 Windows에 있었으며, 전체 빌드 시간에 많은 차이가 있다고 생각합니다.

관련 문제