Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       offsetof - Décalage d'un membre d'une structure

SYNOPSIS

       #include <stddef.h>

       size_t offsetof(type, membre);

DESCRIPTION

       La macro offsetof() renvoie le décalage du champ membre à partir du début de la structure type.

       Cette  macro  est  utile  car  la  taille  des  champs  qui  composent  une  structure  peut varier d'une
       implémentation à l'autre. De plus, les compilateurs peuvent insèrer des octets entre les champs pour  des
       questions  d'alignement, le nombre de ces octets dépendant de chaque compilateur. Ainsi, le décalage d'un
       élément n'est pas forcément égal à la somme des tailles des membres qui le précèdent.

       Une erreur de  compilateur  sera  signalée  si  membre  n'est  pas  aligné  avec  une  frontière  d'octet
       (c'est-à-dire qu'il s'agit d'un champ de bits).

VALEUR RENVOYÉE

       offsetof() renvoie le décalage (en octets) du membre spécifié à l'intérieur de la structure type.

CONFORMITÉ

       C89, C99, POSIX.1-2001.

EXEMPLE

       Sur  un  système  Linux/i386,  le  programme  ci-dessous,  compilé avec les options par défaut de gcc(1),
       affichera le résultat suivant :

           $ ./a.out
           décalages: 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 dépend du compilateur */

           printf("décalages: i=%zd c=%zd d=%zd a=%zd\n",
                   offsetof(struct s, i), offsetof(struct s, c),
                   offsetof(struct s, d), offsetof(struct s, a));
           printf("sizeof(struct s)=%zd\n", sizeof(struct s));

           exit(EXIT_SUCCESS);
       }

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

       Alain  Portal <http://manpagesfr.free.fr/> (2006). Nicolas François et l'équipe francophone de traduction
       de Debian (2006-2009).

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

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».