Solaris 動的トレースガイド

C プリプロセッサの使用

Solaris システムインタフェースの定義に使用されている C プログラミング言語には、C プログラムのコンパイルの一連の初期手順を実行する「プリプロセッサ」が用意されています。C プリプロセッサは、一般に、マクロ置換 (C プログラム内のあるトークンを別の事前定義済みトークンセットで置き換える) の定義や、システムヘッダーファイルのコピーの挿入に利用されます。dtrace コマンドに -C オプションを指定すると、D プログラムで C プリプロセッサを使用することができます。このオプションが指定された場合、dtrace はまず、プログラムソースファイルに対して cpp(1) プリプロセッサを実行します。そして、その結果を D コンパイラに渡します。C プリプロセッサの詳細は、『プログラミング言語 C』を参照してください。

D コンパイラには、オペレーティングシステム実装に関連付けられている C の型記述のセットが自動的にロードされます。しかし、プリプロセッサを使用すると、独自の C プログラムで使用している型定義などもロードできます。プリプロセッサではこのほかに、D コードのチャンクに拡張されるマクロやその他のプログラム要素を作成するなどのタスクも実行できます。D プログラムでプリプロセッサを使用するときは、有効な D 宣言を含むファイルだけを使用してください。型とシンボルの外部宣言だけを含む通常の C ヘッダーファイルは、D コンパイラで正しく解釈されます。C 関数ソースコードのような追加プログラム要素を含む C ヘッダーファイルは、D コンパイラでは構文解析できません。このようなファイルを使用した場合、D コンパイラからエラーメッセージが返されます。