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

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 ブロック内に出現する場合、ヘッダストップポイントは #if の開始位置となります。以下に例を示します。

#include "xxx.h"
#ifndef YYY_H
#define YYY_H 1
#include "yyy.h"
#endif
#if TEST /* #if TEST の直前にヘッダストップポイントを配置する */
int i;
#endif

この例では、プリプロセッシングディレクティブに属さない最初のトークンは int ですが、ヘッダストップポイントは、それを含む #if ブロックの開始位置となります。この PCH ファイルには、xxx.h のインクルードと、条件付きで YYY_H の定義と yyy.h のインクルードが反映されます。ただし、#if TEST によって生成される状態は保持されません。

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0472BJ
Non-ConfidentialID011811