Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       offsetof - Decalage d'un membre d'une structure

SYNOPSIS

       #include <stddef.h>

       size_t offsetof(type, membre);

DESCRIPTION

       La  macro  offsetof()  renvoie  le decalage du champ membre a partir du
       debut de la structure type.

       Cette macro est utile car  la  taille  des  champs  qui  composent  une
       structure  peut  varier  d'une  implementation  a l'autre. De plus, les
       compilateurs peuvent inserer des  octets  entre  les  champs  pour  des
       questions  d'alignement,  le  nombre  de ces octets dependant de chaque
       compilateur. Ainsi, le decalage d'un element n'est pas forcement egal a
       la somme des tailles des membres qui le precedent.

       Une erreur de compilateur sera signalee si membre n'est pas aligne avec
       une frontiere d'octet (c'est-a-dire qu'il s'agit d'un champ de bits).

VALEUR RENVOY'EE

       offsetof() renvoie  le  decalage  (en  octets)  du  membre  specifie  a
       l'interieur de la structure type.

CONFORMIT'E

       C89, C99, POSIX.1-2001.

EXEMPLE

       Sur  un  systeme  Linux/i386, le programme ci-dessous, compile avec les
       options par defaut de gcc(1), affichera le resultat suivant :

           $ ./a.out
           decalages: i=0 c=4 d=8 a=16
           sizeof(struct s)=16

   Source du programme

       #include <stddef.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(void)
       {
           struct s {
               int i;
               char c;
               double d;
               char a[];
           };

           /* La sortie depend du compilateur */

           printf("decalages: 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

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Alain Portal <URL:http://manpagesfr.free.fr/> (2006).  Nicolas Francois
       et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.