man.bsd.lv manual page server

Manual Page Search Parameters

OFFSETOF(3) Library Functions Manual OFFSETOF(3)

offsetofoffset of a structure member

#include <stddef.h>

size_t
offsetof(type, member);

The () 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).

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);

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

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

April 1, 2011 NetBSD-9.2