为了账号安全,请及时绑定邮箱和手机立即绑定

Fortran:整数*4对整数(4)对整数(类=4)

Fortran:整数*4对整数(4)对整数(类=4)

Fortran:整数*4对整数(4)对整数(类=4)我正在努力学习Fortran,我看到很多不同的定义正在被传递,我想知道他们是否试图完成同样的事情。下面的区别是什么?integer*4integer(4)integer(kind=4)
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

在Fortran>=90中,最好的方法是使用内部函数来指定所需的精度-这既保证了可移植性,也保证了所需的精度。例如,获取整数imy_int这将支持至少8个小数位数,您可以使用:

integer, parameter :: RegInt_K = selected_int_kind (8)
integer (kind=RegInt_K) :: i, my_int

已定义RegInt_K(或您选择的任何名称)作为parameter,您可以在整个代码中使用它作为符号。这也使得更改精度变得容易。

请求8或9个小数位数通常会得到一个4字节的整数.

integer*4是一个常见的扩展,可以追溯到旧的FORTRAN来指定一个4字节的整数。虽然,这个语法不是而且从来都不是标准的Fortran。

integer (4)integer (RegInt_K)是缩写integer (kind=4)integer (kind=RegInt_K)integer (4)integer*4而且是不可移植的-语言标准没有指定种类的数值。大多数编译器使用kind=4用于4字节整数-用于这些编译器integer*4integer(4)将提供相同的整数类型-但也有例外,因此integer(4)是不可携带的,最好避免。

REALS的方法也是类似的。

更新:如果您不想按照所需的精度指定数字类型,而是通过它们将要使用的存储来指定数字类型,则Fortran 2008提供了一个方法。reals和整数可以由后面的存储位数指定。use使.ISO_FORTRAN_ENV模块,例如,对于一个4字节(32位)整数:

use ISO_FORTRAN_ENV
integer (int32) :: MyInt

gfortran手册在“内部模块”下有文档。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 1573 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信