Next: CEILING, Previous: C_LOC, Up: Intrinsic Procedures [Contents][Index]

### 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