OFFSETOF(3) | Linux Programmer's Manual | OFFSETOF(3) |
NAME
offsetof - offset of a structure memberSYNOPSIS
#include<stddef.h>
size_t offsetof( type , member );
DESCRIPTION
The macro offsetof() returns the offset of the field member from the start of the structure type.RETURN VALUE
offsetof() returns the offset of the given member within the given type, in units of bytes.CONFORMING TO
C89, C99, POSIX.1-2001.EXAMPLE
On a Linux/i386 system, when compiled using the default gcc(1) options, the program below produces the following output:
$ ./a.out
offsets: i=0; c=4; d=8 a=16
sizeof(struct s)=16
Program source
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
struct s {
int i;
char c;
double d;
char a[];
};
/* Output is compiler dependent */
printf("offsets: i=%ld; c=%ld; d=%ld a=%ld\n",
(long) offsetof(struct s, i),
(long) offsetof(struct s, c),
(long) offsetof(struct s, d),
(long) offsetof(struct s, a));
printf("sizeof(struct s)=%ld\n", (long) sizeof(struct s));
exit(EXIT_SUCCESS);
}
COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.2008-07-12 | GNU |