2.1.21. -Dname[(parm-list)][=def]

此选项定义宏 name

语法


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

其中:

name

是要定义的宏的名称。

parm-list

是以逗号分隔的宏参数的可选列表。 通过将宏参数列表追加到宏名称中,可以定义函数风格的宏。

参数列表必须括在括号内。 指定多个参数时,不能在列表中的逗号和参数名称之间留有空格。

Note

在 UNIX 系统上,括号可能需要转义。

=def

是一个可选的宏定义。

如果省略 =def,则编译器会将 name 定义为值 1。

若要在命令行中包含识别为标记的字符,请将宏定义括号双引号内。

用法

指定 -Dname 与将文本 #define name 放在每个源文件的开头具有相同的效果。

限制

编译器按以下顺序定义和取消定义宏:

  1. 编译器预定义的宏

  2. 使用 -Dname 显式定义的宏

  3. 使用 -Uname 显式取消定义的宏。

示例

在命令行中指定以下选项:


-DMAX(X,Y)="((X > Y) ? X : Y)"

相当于在每个源文件开头定义以下宏:


#define MAX(X, Y) ((X > Y) ? X : Y)

二者效果相同。

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential