### 8.44 `C_SIZEOF` — Size in bytes of an expression

Description:
  `C_SIZEOF(X)` calculates the number of bytes of storage the expression `X` occupies.
Standard:
  Fortran 2008
Class:
  Inquiry function of the module `ISO_C_BINDING`
Syntax:
  `N = C_SIZEOF(X)`
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 will print `.TRUE.` unless you are using a platform where default `REAL` variables are unusually padded.

See also:
  SIZEOF, STORAGE_SIZE