/P (プリプロセス出力のファイルへの書き込み)
更新 : 2007 年 11 月
C と C++ のソース ファイルに対してプリプロセスが実行され、プリプロセス出力がファイルに書き込まれます。
/P
解説
ファイル名は、ソース ファイルの基本名に拡張子 .i が付加されます。プロセスでは、すべてのプリプロセッサ ディレクティブが実行され、マクロ拡張が実行されて、コメントが削除されます。プリプロセスの出力のコメントを保持するには、/P オプションに加えて、/C (プリプロセス時のコメントの保持) オプションも使用します。
/P オプションを使用すると、出力される各インクルード ファイルの先頭と末尾に #line ディレクティブが挿入されます。また、条件付きコンパイルを指定するプリプロセッサ ディレクティブがある場合は、そのディレクティブで削除される行の前後にも挿入されます。これらのディレクティブがあると、プリプロセス済みファイルの行番号が付け直されます。その結果、処理の後半で生成されたエラーは、プリプロセス済みファイルの行番号ではなく、元のソース ファイルの行番号を参照します。#line ディレクティブが生成されないようにするには、/P に加えて /EP (#line ディレクティブを挿入しない stdout へのプリプロセス) を使用します。
/P オプションはコンパイルを中止します。/Fo (オブジェクト ファイルの名前の指定) を指定した場合でも .obj ファイルは生成されません。プリプロセス済みファイルをコンパイルに再送信する必要があります。また /P は、/FA、/Fa (リスティング ファイル)、/FA、/Fa (リスティング ファイル)、および /Fm (マップ ファイルの名前の指定) の各オプションによる出力ファイルも出力しません。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[プリプロセッサ] プロパティ ページをクリックします。
[プリプロセス ファイルの生成] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- GeneratePreprocessedFile を参照してください。
使用例
次のコマンド ラインは、ADD.C をプリプロセスし、コメントを保持し、#line ディレクティブを挿入し、結果を ADD.I というファイルに書き込みます。
CL /P /C ADD.C