Oracle Solaris Studio 12.2: C ユーザーガイド

B.2.128.6 ヘッダーファイルの妥当性の判定

ヘッダーファイルがプリコンパイル可能となる条件。それは、複数のソースファイルに渡ってヘッダーファイルの一貫した解釈ができることです。具体的には、完全な宣言だけが含まれていることです。すなわち、どのファイルの宣言も有効な宣言として独立している必要があります。struct S; などの不完全な型宣言は有効な型宣言です。完全な型宣言がほかのファイルに存在している可能性があります。次のヘッダーファイルの例を考えてみてください。


file a.h
struct S {
#include "x.h" /* not allowed */
};

file b.h
struct T; // ok, complete declaration
struct S {
   int i;
[end of file, continued in another file] /* not allowed*/

プリコンパイル済みヘッダーファイルに組み込まれるヘッダーファイルは、次の項目に違反しないようにしてください。これらの制限に違反するプログラムをコンパイルした場合、結果は予測できません。

ヘッダーに変数と関数の宣言が含まれている場合は、ヘッダーも同様にプリコンパイル可能です。