私はそれが非常にばかげた質問だと知っていますが、gccのシステムヘッダとノーマルヘッダの違いはありません。システムヘッダとノーマルヘッダgcc
このlinkに参照のうえ:オペレーティングシステムへのインタフェースを宣言するヘッダファイルと ランタイムライブラリは、多くの場合、厳密したがってC. を準拠して記述することはできません
2.8システムヘッダ
、GCCができますシステムヘッダ内に見つかったコード。 GCCがシステムヘッダを処理している間、 '#warning'( 診断を参照)によって生成されたもの以外のすべての警告は抑制されます。 システムヘッダに定義されたマクロは、それらが展開されているところでは、いくつかの警告 の影響を受けません。この免責は、 アドホックで与えられます。システムヘッダーで定義されたマクロのコードのために、警告が多数の誤検出を生成することがわかったとき
通常、特定のディレクトリに見つかったヘッダーのみが、システムヘッダーと見なされるのは です。これらのディレクトリは、GCC がコンパイルされたときに決定されます。以下のためのシステムとして ヘッダを扱われ
ヘッダファイル-isystemと-idirafterコマンドラインオプションと検索パスに追加したディレクトリで見つかった: システムヘッダに通常のヘッダを作成する二つの方法は、しかし、があります診断の目的。 #pragma GCC system_headerというディレクティブもあります。これはGCCに、現在のインクルードファイルの残りの部分をシステムヘッダーであると見なすように指示します。 ファイルは影響を受けていません の '#pragma'の前にあるコードです。 #pragma GCC system_headerは、 のプライマリソースファイルには何の効果もありません。
私は答え可能であれば、システムヘッダの内容の一部を示すと、リンクに警告や特別な治療の種類をについて話していると感謝しています。
システムヘッダは、Gccコンパイラのデフォルトパスのヘッダです。 – Sabrina
あなたが引用したドキュメントには、「特定のディレクトリ」と書かれています。私はそれがすべてのデフォルトのディレクトリと同じであるかどうかは分かりません。 – Barmar
@Bramar:リンクは 'GCCがコンパイルされたときにこれらのディレクトリが決定されます.'これは、ソースからGCCをコンパイルする場合、これらのディレクトリが何であるかを決定することを意味します。 –