我有一个Fortran模块文件(filename.F),其中包含一行语句:
#include "module_io_domain_defs.inc"
我不太明白。为什么是"#"符号。不应该只是
include "module_io_domain_defs.inc"
我知道在编译过程中,* .F文件变成* .f90文件。如何理解上述陈述以及编译过程的剂量如何?
答案 0 :(得分:4)
#
指定C预处理程序指令。因此,#include
不是由Fortran编译器处理,而是由C预处理器(cpp
,c-preprocessor)处理。首都.F
代替f
通常会告诉编译器在编译之前运行cpp
。
主要区别在于#include
包含的文件将再次由cpp
处理,而include
所包含的文件在编译之前不会被任何内容处理。
如果编译器无法识别后缀中的大写-cpp
,也可以通过传递-fpp
或F
等标志来请求预处理器。