Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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> >>.