4.26 プリコンパイルヘッダ(PCH)ファイル処理とヘッダストップポイント

PCH ファイルには、ヘッダストップポイントよりも前のすべてのコードのスナップショットが含まれます。

ARM コンパイラ 5.05 以降、すべてのプラットフォームでプリコンパイルヘッダ(PCH)ファイルのサポートが廃止される予定です。Windows 8 上の ARM コンパイラでは PCH ファイルをサポートしないことに注意して下さい。
通常、ヘッダストップポイントは、プリプロセッシングディレクティブに属さない、元のソースファイル内の最初のトークンとなります。以下のサンプルでは、ヘッダストップポイントは int であり、PCH ファイルには xxx.h および yyy.h のインクルードが反映されたスナップショットが保持されます。
#include "xxx.h"
#include "yyy.h"
int i;
ヘッダストップポイントは、#pragma hdrstop を使用して手動で指定できます。このプラグマを使用する場合は、プリプロセッシングディレクティブに属さない最初のトークンの前に配置する必要があります。このサンプルでは、以下のように int の前に配置する必要があります。
#include "xxx.h"
#include "yyy.h"
#pragma hdrstop
int i;
最初の非プリプロセッサトークンまたは #pragma hdrstop が、条件ディレクティブブロック(#if#ifdef、または #ifndef)内に出現する場合、ヘッダストップポイントは開始位置条件ディレクティブとなります。
以下に例を示します。
#include "xxx.h"
#ifndef YYY_H
#define YYY_H 1
#include "yyy.h"
#endif
#if TEST /* Header stop point lies immediately before #if TEST */
int i;
#endif
このサンプルでは、プリプロセッシングディレクティブに属さない最初のトークンは int ですが、ヘッダストップポイントは、それを含む #if ブロックの開始位置となります。この PCH ファイルには、xxx.h のインクルードと、条件付きで YYY_H の定義と yyy.h のインクルードが反映されます。ただし、#if TEST によって生成される状態は保持されません。
関連する概念
4.24 プリコンパイルヘッダ(PCH)ファイル
4.25 プリコンパイルヘッダ(PCH)ファイルの自動処理
4.27 プリコンパイルヘッダ(PCH)ファイルの作成要件
4.28 複数のプリコンパイルヘッダ(PCH)ファイルを使用したコンパイル
4.29 廃止されたプリコンパイルヘッダ(PCH)ファイル
4.30 プリコンパイルヘッダ(PCH)ファイルのファイル名と場所の手動による指定
4.31 プリコンパイルヘッダ(PCH)ファイル処理の選択的な適用
4.32 プリコンパイルヘッダ(PCH)ファイル処理の抑止
4.33 プリコンパイルヘッダ(PCH)処理中のメッセージ出力
4.34 プリコンパイルヘッダ(PCH)ファイルのパフォーマンスに関する問題点
関連する参考文書
8.148 --pch
8.149 --pch_dir=dir
10.87 #pragma hdrstop
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.