Fortran Coder

标题: fortran Include用法疑问 [打印本页]

作者: 大红在路上    时间: 2015-8-30 13:21
标题: fortran Include用法疑问
本人VS2010 ,Intel Fortran2014。代码文件为.f后缀
我的问题是:
#include ‘para.h’与  include ‘para.h’[没有#号]有什么区别? 这是别人原来的程序,他的程序里都没有‘#’号,但编译会出错,在前边加‘#’号就恢复正常,不知道为什么?

或者看一下下边的代码(两个文件在同一个文件夹下,test_for_preprocessor.f和para.h):
[Fortran] 纯文本查看 复制代码
!****************************test_for_preprocessor.f文件内容***********************************
      program xx
#      include 'pars.h'     !有没有‘#’号很关键,为什么?
      integer x

      x=I_MAX
      
      write(*,*)x,J_MAX,K_MAX
      end

[Fortran] 纯文本查看 复制代码
!****************************para.h文件内容***********************************
#    define I_MAX 41
#    define J_MAX 21
#    define K_MAX 61


作者: fcode    时间: 2015-8-30 14:21
include 不是标准语法。
加 # 的是 fpp 的预处理指令。
不加 # 的是 ivf 扩展的 include。

两者使用上没有区别。

但编译器执行的顺序是,先前者后后者

所以,如果被包含的 pars.h 里存在其他的预处理指令(如 #define),那么就只能用 #include,而不能用 include
因为执行后者的时候,不能再返回去执行前者了。

作者: 大红在路上    时间: 2015-8-30 15:27
fcode 发表于 2015-8-30 14:21
include 不是标准语法。
加 # 的是 fpp 的预处理指令。
不加 # 的是 ivf 扩展的 include。

非常感谢!一年多没有学习,思维已经跟不上了 ~




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2