Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是Fortran中的真常量和假常量(没有周围的句点(';';)?_Fortran_Gfortran - Fatal编程技术网

什么是Fortran中的真常量和假常量(没有周围的句点(';';)?

什么是Fortran中的真常量和假常量(没有周围的句点(';';)?,fortran,gfortran,Fortran,Gfortran,考虑下面的程序 program print*,.true.,.false. print*,true,false end program 此程序在pgfortan和gfortran中打印不同的值 pgfortran输出 T F 0.00000000 0.00000000 T F 4.59135442E-41 5.87982594E-39 gfortran输出 T F 0.00000000 0.00000000 T F 4.59135442E-41 5

考虑下面的程序

program
  print*,.true.,.false.
  print*,true,false
end program
此程序在
pgfortan
gfortran
中打印不同的值

pgfortran
输出

T F
0.00000000       0.00000000
T F
4.59135442E-41   5.87982594E-39
gfortran
输出

T F
0.00000000       0.00000000
T F
4.59135442E-41   5.87982594E-39

问题-逻辑常数
.true.
.false.
正确显示为
T
F
。但是这些常量是什么呢?如果常量周围没有
,那么
true
false

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

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


当我们讨论逻辑值的主题时,我将向您指出。

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

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

当我们讨论逻辑值的主题时,我将向您指出。

请看一看“隐式无”和隐式声明,您将看到TRUE和FALSE将隐式定义为实变量(这里是一个随机值,因为它们尚未初始化)。请看一看“隐式无”和隐式声明,您将看到TRUE和FALSE将隐式定义为实变量(这里是一个随机值,因为它们尚未初始化)。