C_SIZEOF(X)
calculates the number of bytes of storage the expression X
occupies.
Fortran 2008
Inquiry function of the module ISO_C_BINDING
N = C_SIZEOF(X)
X | The argument shall be an interoperable data entity. |
The return value is of type integer and of the system-dependent kind C_SIZE_T
(from the ISO_C_BINDING
module). Its value is the number of bytes occupied by the argument. If the argument has the POINTER
attribute, the number of bytes of the storage area pointed to is returned. If the argument is of a derived type with POINTER
or ALLOCATABLE
components, the return value does not account for the sizes of the data pointed to by these components.
use iso_c_binding integer(c_int) :: i real(c_float) :: r, s(5) print *, (c_sizeof(s)/c_sizeof(r) == 5) end
The example will print .TRUE.
unless you are using a platform where default REAL
variables are unusually padded.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gfortran/C_005fSIZEOF.html