/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


OFFSETOF(3)                                         Linux Programmer's Manual                                        OFFSETOF(3)



NAME
       offsetof - offset of a structure member

SYNOPSIS
       #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.

       This  macro  is useful because the sizes of the fields that compose a structure can vary across implementations, and com-
       pilers may insert different numbers of padding bytes between fields.  Consequently, an element's offset is not  necessar-
       ily given by the sum of the sizes of the previous elements.

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

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.25 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/.



GNU                                                        2008-07-12                                                OFFSETOF(3)

Valid XHTML 1.0!Valid CSS!