C bibliothèque macro - offsetof ()
C bibliothèque standard - <stddef.h>
description
C bibliothèque macrooffsetof (type, membre-désignateur) va générer un type entier size_t constante,ce qui est un élément structurel de la structure par rapport à l'octet de début offset. Membre de membre-désignateur donné, au nom du type de structure est donné.
déclaration
Voici offsetof () déclaration macro.
offsetof(type, member-designator)
Paramètres
- Type - ceci est un type de classe, dans lequel, membre-désignateur est un membre valide de l'indicateur.
- membre-désignateur - qui est membre d'un indicateur de type de classe.
Valeur de retour
Cette macro renvoie une valeur de typesize_t, montrant le type de décalage de membres.
Exemples
L'exemple suivant montre offsetof () macro utilisation.
#include <stddef.h> #include <stdio.h> struct address { char name[50]; char street[50]; int phone; }; int main() { printf("address 结构中的 name 偏移 = %d 字节。\n", offsetof(struct address, name)); printf("address 结构中的 street 偏移 = %d 字节。\n", offsetof(struct address, street)); printf("address 结构中的 phone 偏移 = %d 字节。\n", offsetof(struct address, phone)); return(0); }
Nous allons compiler et exécuter le programme ci-dessus, qui se traduira par ce qui suit:
address 结构中的 name 偏移 = 0 字节。 address 结构中的 street 偏移 = 50 字节。 address 结构中的 phone 偏移 = 100 字节。