cppコマンドを使って定義済みマクロの一覧を得る

cpp(Cプリプロセッサ)コマンドについて学んだのでメモ。

Cコンパイラが内部で起動するプリプロセッサですが、単体で実行することもできます。・・・でも、たぶん、あまりしないのかも?

$ which cpp
/usr/bin/cpp

色々オプションがあるけれども、とりあえず試したこと。

標準定義済みマクロを得る

-dMオプションで、プリプロセッサの実行中に定義された#define制御子のリストを出力します。

ということは、空のファイルに対して実行すれば、標準定義マクロのみのリストを得られます。

$ touch hoge.h
$ cpp -dM hoge.h

非標準定義済みマクロ(と処理結果)を得る

標準でない、プラットフォーム固有の定義マクロを確認したいとき。

-dDオプションで、定義済みマクロを含めずに、#define制御子のリストと前処理の結果を出力します。

これも、同じように空のファイルに対して実行します。

$ touch moga.h
$ cpp -dD moga.h