前処理ディレクティブと同等の働き

-A オプション、-D オプションおよび -U オプションを使用して、前処理ディレクティブと同等の働きをするようにできます。

-A の使用

アサーションを作成するには、-Aオプションを使用します。構文: -Aname[(value)].

引数 - 説明
name アサーションの識別子(名前)を指定します。
value

アサーションのvalue(値)を指定します。valueを指定する場合は、それを区切る括弧とともに引用符で囲む必要があります。

例えば、識別子を fruit とし、値を orangebanana としてアサーションを作成するには、次のコマンドを実行します。

-D の使用

マクロの定義には-Dオプションを使用します。構文: -Dname[=value].

引数 - 説明
name 定義するマクロの名前です。
value 名前として入力する値です。value を入力しなかった場合、name は1に設定されます。英数字以外を含んでいる値は引用符で囲んでください。

例えば、SIZEという名前のマクロを定義し、値を100にするには、次のコマンドを実行します。

-D オプションは、関数を定義するときにも使用されます。例: icc -D"f(x)=x" prog1.c

-U の使用

事前定義済みマクロを削除(取消し)するには、-U オプションを使用します。構文: -Uname.

引数 - 説明
name 取り消すマクロの名前
 

同じコンパイルで、-D オプションと -U オプションを使用する場合、コンパイラは、コマンドラインで入力した順番ではなく、 -U オプションより先に -D オプションを処理します。