假设我有一堆变量 a,b,c
integer*4 a
integer*8 b
real*8 c
有没有办法在不手动计算的情况下确定这些变量使用了多少字节。我有一长串变量,我需要知道它们的大小以用于写出目的。
假设我有一堆变量 a,b,c
integer*4 a
integer*8 b
real*8 c
有没有办法在不手动计算的情况下确定这些变量使用了多少字节。我有一长串变量,我需要知道它们的大小以用于写出目的。
在 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)
或使用内部构造函数。