cpp(1)

名称
cpp - GNU-C 互換のコンパイラプリプロセッサ

書式

ccp [-$] [-A predicate [( value )]] [-C] [-D name [= definition ]] [-dD] [-dM] [-I directory ] [-H] [-I-] [-imacros file ] [-include file ] [-idirafter dir ] [-iprefix prefix ] [-iwithprefix dir ] [-lang-c] [-lang-c++] [-lang-objc] [-lang-objc++] [-lint] [-M] [-MD] [-MM] [-MMD] [-nostdinc] [-nostdinc++] [-P] [-pedantic] [-pedantic-errors] [-traditional] [-trigraphs] [-U name ] [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional]
    [ infile |-] [ outfile |-]

解説
C プリプロセッサは、 実際のコンパイルの前にプログラムを変換するために C コンパイラから自動的に利用される マクロプロセッサ です。 長い記述を簡略してマクロとして定義することができるため、 マクロプロセッサと呼ばれます。 C プリプロセッサは、あなたが使いたいと思ったものだけ使うことのできる、4 つの 機能を提供します。

•   ヘッダファイルを読み込みます。 これは、 プログラムに組み込まれる (C 言語の)宣言の入ったファイルです。

•   C 言語の任意の断片の省略形として マクロ の定義をし、C プリプロセッサが、プログラム内の全てのマクロを その定義で置き換えます。

•   条件文の処理をします。専用のプリプロセッサコマンドを用いて、 いろいろな条件にしたがって、プログラムの一部を含めたり除外したりできます。

•   行番号の制御をします。 もし、ソースファイルと コンパイルされた中間ファイルとを組み合わせたり再アレンジしたりするプログラムを 用いる場合、 コンパイラにオリジナルのソースの何行目であるかを知らせるための、 行番号制御のプリプロセッサコマンドが利用できます。

C プリプロセッサは、そのインプリメントによって細かな部分に違いが いくつかあります。GNU C プリプロセッサの完全なドキュメントは、 info ファイルの `cpp.info ', もしくは、マニュアルの The C Preprocessor を参照して下さい。 この双方は `cpp.texinfo 'から生成されます。GNU C プリプロセッサは ANSI Standard C のスーパセットと なっています。 ANSI Standard C では、 今日の C プログラムで一般に用いられている多くの無害な記述を認めないように 要求しています。 この非互換性は、ユーザにとっては不便であり、そのため、 GNU C preprocessor ではこの記述をデフォルトで受け付けるように作られています。 厳密にいえば、 ANSI Standard C にするためには、 オプションとして `-trigraphs ', `-undef ', `-pedantic 'をつけなければなりません。 しかし経験から生まれた結論では、厳密な ANSI Standard C は、これらのことを 行うには好ましくないものであるということである。 ほとんどの場合は、C プリプロセッサは明示的に実行する必要はありません。 C コンパイラが自動的に実行してくれるからです。しかしながら、 明示的にプリプロセッサを実行するのが有効なことが個々にはあります。 C プリプロセッサ は、引数にファイル名として infile と outfile の 2 つを期待します。 プリプロセッサは #include 'で指定したファイルと一緒に `infile を読み込みます。 入力ファイルの組合せで作られた出力は、 全て outfile に書かれます。 infile と outfile のどちらかが `- 'であった場合は、infile の時は標準入力からデータを読み、outfile の時は標準出力へ結果を書きます。もし outfile もしくは両方のファイル名が省略された場合は、 標準入力と標準出力が使われます。

オプション
オプションに関しては、オリジナルのオンラインマニュアルを参照して下さい。

関連項目
`Cpp' entry in info ; The C Preprocessor , Richard M. Stallman.
gcc(1); `Gcc' entry in info ; Using and Porting GNU CC (for version 2.0), Richard M. Stallman.

COPYING
Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.