OFFSETOF(3) | Library Functions Manual | OFFSETOF(3)

# NAME

`offsetof` —
offset of a structure member

# SYNOPSIS

`#include <stddef.h>`

size_t
`offsetof`(type, member);

# DESCRIPTION

The `offsetof`() macro expands to an integer constant expression of type size_t and yields the offset, in bytes, of the field member from the start of the structure type.

A compiler error will result if member is not aligned to a byte boundary (i.e. it is a bit-field).

# EXAMPLES

Regardless of the architecture and the ABI, the following example prints the value zero for the variable x.

    struct example {
    	double	x;
    	int	y;
    	char	z;
    };

    size_t x, y, z;

    x = offsetof(struct example, x);
    y = offsetof(struct example, y);
    z = offsetof(struct example, z);

    (void)printf("%zu %zu %zu\n", x, y, z);

# SEE ALSO

__alignof__(3), stddef(3), typeof(3)

# STANDARDS

The `offsetof`() macro conforms to ANSI X3.159-1989 (“ANSI C89”).

April 1, 2011 | NetBSD 9.4