gpt4 book ai didi

fortran - Fortran中的CPP预处理语句可以缩进吗?

转载 作者:行者123 更新时间:2023-12-02 16:14:04 25 4
gpt4 key购买 nike

我对使用 Fortran 预处理语句相当陌生,并且有一个可能非常原生的问题。 Fortran预处理语句可以缩进吗?我在 Linux (openSUSE Leap) 上使用 Gfortran 4.8.1 进行了测试,结果发现它根本无法缩进。

以下代码 main.f90 可与 gfortran -cpp main.f90 -o main 配合使用:

program main
implicit none
#ifdef DEBUG
print *, "I am in debug mode"
#endif
print *, "hello world!"
end program main

但是以下会引发错误:

program main
implicit none
#ifdef DEBUG
print *, "I am in debug mode"
#endif
print *, "hello world!"
end program main

错误消息为错误:(1) 处名称中的字符无效。这是否意味着我们应该始终从行的第一个开头编写预处理语句,或者它只是编译器特定的规则?任何帮助将不胜感激,并提前致谢!

最佳答案

不,它们不能缩进,因为 gfortran 在 traditional mode 中运行 CPP不允许缩进。它们必须始终从第一列开始。

您可以手动运行 CPP,但要非常小心。如果您在某处使用 // 字符串连接运算符,预处理器会将其视为注释。您必须使用 @ewcz 在他/她的答案中所示的 -C 标志,这将禁止丢弃评论。

一些编译器提供自己的 FPP 预处理器,其行为有所不同。

关于fortran - Fortran中的CPP预处理语句可以缩进吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com