OFFSETOF(3) Library Functions Manual OFFSETOF(3)

NAME

offsetofoffset 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 6.1