Fortran Coder

标题: .f文件中出现C语句是什么意思 [打印本页]

作者: 大红在路上    时间: 2015-8-24 00:10
标题: .f文件中出现C语句是什么意思
最近在学习一个大型计算程序,该程序是fortran 和C共同实现的,程序比较旧。主程序中有一段是这样的(见下面代码),我想问的是:加粗的部分应该是C语句,为什么会出现在.f文件中,编译过程中起什么作用?本人使用的编译器为VS2010,INTEL FORTRAN 14。
[Fortran] 纯文本查看 复制代码
 ……
implicit none
      include 'Include/pars.h'
      include 'Include/parschim.h'
      include 'Include/chimer.h'
      include 'Include/indx.h'
      include 'Include/inxblk.h'
      include 'Include/dilution.h'
      include 'Include/ntt.h'
      include 'Include/parallel_f.h'
      include 'Include/rad1.h'
      include 'Include/rad4.h'
      include 'Include/vary.h'
      include 'Include/cons.h'
#ifdef PARALLEL
      include 'Include/filenm.h'
      include 'Include/spray1.h'

      integer argc
      character*80 argv(0:MAXARGS)
#endif        /* PARALLEL */
      include 'Include/ignite1.h'
      include 'Include/control.h'

      integer iexit, nn
      real*8  time

      logical abort
c

c
#ifdef PARALLEL
……







作者: vvt    时间: 2015-8-24 07:56
这是预处理语句。不是c语句。
与c语言的预处理用法一样。实际上,很多编译器也使用c语言编译器的预处理器:cpp或fpp

你可以在论坛右上角搜索栏输入“预处理”,查看其他几个相关问题的帖子。

作者: 大红在路上    时间: 2015-8-24 19:13
vvt 发表于 2015-8-24 07:56
这是预处理语句。不是c语句。
与c语言的预处理用法一样。实际上,很多编译器也使用c语言编译器的预处理器: ...

回答地太及时了,我再问一下:预处理在程序中也会进行编译吗?

作者: fcode    时间: 2015-8-24 19:20
预处理发生在编译以前,即:预处理的结果参与编译。

比如
#ifdef  aaa
bbb
#else
ccc
#endif

如果定义了 aaa,则 bbb 参与编译,ccc不参与。
否则,bbb 不参与编译,ccc参与。
作者: 大红在路上    时间: 2015-8-24 19:30
fcode 发表于 2015-8-24 19:20
预处理发生在编译以前,即:预处理的结果参与编译。

比如

那直接使用fortran代码也可以实现,为什么要使用预处理啊~
作者: fcode    时间: 2015-8-24 20:49
不一样。

预处理发生在编译前。编译时决定哪条分支参与编译。(其他分支不参与编译)

if 语句是执行语句,在执行时决定走哪条分支。(所有分支都参与编译)
作者: 大红在路上    时间: 2015-8-24 21:18
fcode 发表于 2015-8-24 20:49
不一样。

预处理发生在编译前。编译时决定哪条分支参与编译。(其他分支不参与编译)

厉害,你的头像还有签名都很有意思,可以借用一下推广本站吗
作者: fcode    时间: 2015-8-24 21:22
当然可以,随便借用。

签名中的是日本歌手,仓木麻衣。头像是手绘版~

作者: 大红在路上    时间: 2015-8-24 23:14
fcode 发表于 2015-8-24 21:22
当然可以,随便借用。

签名中的是日本歌手,仓木麻衣。头像是手绘版~

再次评价:论坛真心做得不错,很纯粹的学术网站,没有无意义的灌水,人不多,但有求必应,这一点比小木虫好。希望网站越做越好!




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