# offsetof

From cppreference.com
< c‎ | types

Defined in header `<stddef.h>` |  |
#define offsetof(type, member) /*implementation-defined*/ |  |

The macro offsetof expands to a constant of type size_t, the value of which is the offset, in bytes, from the beginning of an object of specified type to its specified member, including padding if any.

### Example

Run this code

    #include <stdio.h>
    #include <stddef.h>

    struct S {
        char c;
        double d;
    };

    int main(void)
    {
        printf("the first element is at offset %zu\n", offsetof(struct S, c));
        printf("the double is at offset %zu\n", offsetof(struct S, d));
    }

Possible output:

    the first element is at offset 0
    the double is at offset 8

### See also

size_t | unsigned integer type returned by the `sizeof` operator (typedef)
C++ documentation for offsetof

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/types/offsetof&oldid=70954"