此选项仅适用于 .F、.F90、.F95 和 .F03 源文件。
–Dname=def 将 name 定义为具有值 def
–Dname 将 name 定义为 1
在命令行上,此选项将定义 name,就如同
#define name[=def]
已经出现在源文件中。如果未指定 =def,则名称 name 的值定义为 1。宏符号 name 会传递到预处理程序 fpp(或 cpp-请参见 -xpp 选项)进行扩展。
预定义的宏符号具有两个前导下划线。Fortran 语法可能不支持这些宏的实际值-它们只应出现在 fpp 或 cpp 预处理程序指令中。(请注意两个前导下划线。)
编译器版本是在 _ _SUNPRO_F90 和 _ _SUNPRO_F95 中预定义的(采用十六进制)。例如,对于 Oracle Solaris Studio 12.4 发行版中的 Fortran 编译器 8.6 版,_ _SUNPRO_F95 为 0x860。
以下宏是在相应系统上预定义的:
_ _sparc、_ _unix、_ _sun、_ _SVR4、__i386、_ _SunOS_5_10 和 _ _SunOS_5_11
符号 _ _sparc、_ _sparcv8 和 _ _sparcv9 是在其各自的 SPARC 系统上定义的。
以下预定义值不带下划线,但是在以后的发行版中可能会删除这些值: sparc、unix 和 sun。
在 64 位 x86 系统上,定义了宏 __amd64 和 __x86_64。
使用 -v 详细选项编译 .F、.F90、.F95 或 .F03 源文件可查看编译器采用的预处理程序定义。
您可以在类似如下的预处理程序条件中使用这些值:
#ifdef _ _sparc
缺省情况下,f95 使用 fpp(1) 预处理程序。 与 C 预处理程序 cpp(1) 一样,fpp 会扩展源代码宏并允许对代码进行条件编译。与 cpp 不同的是,fpp 能够识别 Fortran 语法,并作为首选的 Fortran 预处理程序。使用 -xpp=cpp 标志可以强制编译器明确使用 cpp 而非 fpp。