Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

3.4.9 –Dname[=def]

为预处理程序定义符号 name

此选项仅适用于 .F.F90.F95.F03 源文件。

–Dname=defname 定义为具有值 def

–Dnamename 定义为 1

在命令行上,此选项将定义 name,就如同

#define name[=def]

已经出现在源文件中。如果未指定 =def,则名称 name 的值定义为 1。宏符号 name 会传递到预处理程序 fpp(或 cpp-请参见 -xpp 选项)进行扩展。

预定义的宏符号具有两个前导下划线。Fortran 语法可能不支持这些宏的实际值-它们只应出现在 fppcpp 预处理程序指令中。(请注意两个前导下划线。)

  • 编译器版本是在 _ _SUNPRO_F90_ _SUNPRO_F95 中预定义的(采用十六进制)。例如,对于 Oracle Solaris Studio 12.4 发行版中的 Fortran 编译器 8.6 版,_ _SUNPRO_F950x860

  • 以下宏是在相应系统上预定义的:

    _ _sparc_ _unix_ _sun_ _SVR4__i386_ _SunOS_5_10_ _SunOS_5_11

    符号 _ _sparc_ _sparcv8_ _sparcv9 是在其各自的 SPARC 系统上定义的。

  • 以下预定义值不带下划线,但是在以后的发行版中可能会删除这些值: sparcunixsun

  • 在 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