C-Bibliothek Makro - offsetof ()
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 字节。