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

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

我正在努力学习Fortran,我看到很多不同的定义正在被传递,我想知道他们是否试图完成同样的事情。下面的区别是什么?

  • integer*4

  • integer(4)

  • integer(kind=4)


暮色呼如
浏览 1574回答 3
3回答

手掌心

在Fortran>=90中,最好的方法是使用内部函数来指定所需的精度-这既保证了可移植性,也保证了所需的精度。例如,获取整数i和my_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*4和integer(4)将提供相同的整数类型-但也有例外,因此integer(4)是不可携带的,最好避免。REALS的方法也是类似的。更新:如果您不想按照所需的精度指定数字类型,而是通过它们将要使用的存储来指定数字类型,则Fortran 2008提供了一个方法。reals和整数可以由后面的存储位数指定。use使.ISO_FORTRAN_ENV模块,例如,对于一个4字节(32位)整数:use ISO_FORTRAN_ENV integer (int32) :: MyIntgfortran手册在“内部模块”下有文档。
打开App,查看更多内容
随时随地看视频慕课网APP