Fortran 中的 TRUE 和 FALSE 常量(不带周围的句点 ('.'))是什么?

问题描述 投票:0回答:1

考虑下面的程序

program
  print*,.true.,.false.
  print*,true,false
end program

该程序在

pgfortan
gfortran
中打印不同的值。

pgfortran
输出

T F
0.00000000       0.00000000

gfortran
输出

T F
4.59135442E-41   5.87982594E-39

问题 - 逻辑常数

.true.
.false.
正确显示为
T
F
。但是这些常量
true
false
是什么,其中常量周围没有
.

fortran gfortran
1个回答
5
投票

正如 albert 所建议的,TRUE 和 FALSE 在 Fortran 中没有内在含义 - 它们只是必须声明并赋值的普通标识符。有时,应用程序使用带有一堆供应商提供的声明的模块,这些声明可能包括 TRUE 和 FALSE 的声明作为命名常量,尤其是在 Windows 平台上。

在您的示例中,TRUE 和 FALSE 是隐式声明的未初始化变量。由于它们未初始化,因此该值未定义。某些实现可能会给未初始化的变量赋予零值,但大多数实现不会。最好不要将默认值设置为零,这样您就可以更早地意识到编程错误。

当我们讨论逻辑值主题时,我会向您指出我关于该主题的旧帖子

© www.soinside.com 2019 - 2024. All rights reserved.