针对不同操作系统的Gfortran预处理器指令

Ser*_*her 4 preprocessor fortran

你能告诉我怎样才能做到以下几点:

#if __unix__
#define path_sep='/'
#elif __windows__
#define path_sep='\'
#else
#error "path_sep not defined."
#endif
Run Code Online (Sandbox Code Playgroud)

使用gfortran编译器.

M. *_* B. 9

这可以与条件编译结合使用,并在命令行中使用"D"选项.这是一些示例代码:

program test_Dopt
character (len=1) :: pathsep
pathsep = "?"
#ifdef WOS
   pathsep = "\"
#endif
#ifdef UOS
   pathsep = "/"
#endif

write (*, '( "pathsep is >", A1, "<")' )  pathsep

end program test_Dopt
Run Code Online (Sandbox Code Playgroud)

使用文件类型F90命名程序以使gfortran运行预处理器或在编译行上使用-cpp.然后通过在编译行上的D之后包含它们来将选项传递给预处理器,例如gfortran -DWOS.(这比gfortran更通用 - 大多数Fortran编译器将处理C风格的预处理器指令.)然后,您可以识别Fortran之外的操作系统并将信息传递给Fortran程序.

您可以使用文件类型F90或-cpp编译代码.