C_SIZEOF (The GNU Fortran Compiler)

### 8.61 `C_SIZEOF` — Size in bytes of an expression ¶

Synopsis:

  `N = C_SIZEOF(X)`

Description:

  `C_SIZEOF(X)` calculates the number of bytes of storage the expression `X` occupies.

Class:

  Inquiry function of the module `ISO_C_BINDING`

Arguments:

  X | The argument shall be an interoperable data entity.

Return value:

  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.

Example:

         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 prints `T` unless you are using a platform where default `REAL` variables are unusually padded.

Standard:

  Fortran 2008

See also:

  `SIZEOF` — Size in bytes of an expression,
  `STORAGE_SIZE` — Storage size in bits