8.44 -Dname[(parm-list)][=def]

マクロ name を定義します。

構文

-D name [( parm-list )][= def ]
各項目には以下の意味があります。
name
定義するマクロの名前です。
parm-list
コンマで区切られたマクロパラメータのリストを指定できます(省略可)。関数形式のマクロは、マクロパラメータリストをマクロ名に追加することで定義できます。
パラメータリストは括弧で囲む必要があります。複数のパラメータを指定する場合は、リストのコンマとパラメータ名の間にスペースを入れないで下さい。

UNIX システムでは、括弧をエスケープする必要があります。
=def
オプションのマクロ定義です。
=def が省略されている場合、 name を 1 と定義します。
トークンとして認識された文字をコマンドラインに含めるには、マクロ定義を二重引用符で囲みます。

使用法

-Dmacro=def を使用してマクロと定義を指定したときの効果は、各ソースファイルの冒頭にテキスト #define macro def を記述したときの効果と同じです。
-Dmacro を使用して定義なしのマクロを指定したときの効果は、各ソースファイルの冒頭にテキスト #define macro 1 を記述したときの効果と同じです。

制約条件

コンパイラは以下の順序でマクロを定義したり、定義を削除したりします。
  1. コンパイラの定義済みマクロ
  2. -Dname を使用して明示的に定義されたマクロ
  3. -Uname を使用して 明示的に定義が削除されたマクロ

コマンドラインでオプション
-DMAX(X,Y)="((X > Y) ?X :Y)"
を指定することは、各ソースファイルの冒頭でマクロ
#define MAX(X, Y) ((X > Y) ?X :Y)
を定義することと同じ意味です。
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.