Latest web development tutorials

C bibliothèque macro - offsetof ()

C bibliothèque standard - <stddef.h> 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 字节。

C bibliothèque standard - <stddef.h> C bibliothèque standard - <stddef.h>