1

假设我有一堆变量 a,b,c

integer*4 a
integer*8 b
real*8 c

有没有办法在不手动计算的情况下确定这些变量使用了多少字节。我有一长串变量,我需要知道它们的大小以用于写出目的。

4

2 回答 2

1

在 Fortran 2008 中,内在函数storage_size是要走的路。还有,c_sizeof很有用。

对于 Fortran 95 中的整数,您可以使用bit_size.

如果您需要声明具有特定存储大小的变量,请使用模块中的种类常量,iso_fortran_env例如real32.

当然,如果您使用过时的和非标准的声明,integer*4或者real*8您总是知道字节数。它是星号后面的数字(定义为数字类型中可以存储的默认字符数)。

如果您需要一些变量集合的大小,您可以使用相同的组件创建派生类型:

type,sequence :: dummy_t
  integer*4 a
  integer*8 b
  real*8 c
end type
type(dummy_t) :: dummy

并使用storage_size(dummy)或使用内部构造函数。

于 2013-04-11T15:34:11.387 回答
0

如果您使用 gfortran/ifort,您可以使用 sizeof ( gcc ) /( IBM ) 命令。不确定其他编译器。

于 2013-04-11T15:25:26.577 回答