Latest web development tutorials

C-Bibliothek Makro - offsetof ()

C Standard-Bibliothek - <stddef.h> C Standard - Bibliothek - <stddef.h>

Beschreibung

C - Bibliothek Makrooffsetof (Typ, Mitglied-Bezeichner) einen konstanten Integer - Typ size_t,erzeugen , die versetzt zu Beginn Byte ein Strukturelement der Struktur relativ ist. Mitglied von Mitgliedskennung angegeben wird, im Namen des Strukturtyps gegeben.

Erklärung

Hier ist offsetof () Makro-Anweisung.

offsetof(type, member-designator)

Parameter

  • Typ - das ist ein Klasse - Typ, bei dem , Mitglied-Bezeichner ein gültiges Mitglied des Indikators ist.
  • Mitglied-Bezeichner - das ist ein Mitglied einer Klasse - Typ - Indikator ist.

Rückgabewert

Dieses Makro gibt einen Wert vom Typsize_t, der Offset - Typ der Mitglieder zeigt.

Beispiele

Das folgende Beispiel zeigt offsetof () Makro-Nutzung.

#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);
} 

Lassen Sie uns zusammenzustellen und um das obige Programm ausführen, die in der folgenden führen:

address 结构中的 name 偏移 = 0 字节。
address 结构中的 street 偏移 = 50 字节。
address 结构中的 phone 偏移 = 100 字节。

C Standard-Bibliothek - <stddef.h> C Standard - Bibliothek - <stddef.h>