Macro libreria C - offsetof ()
Descrizione
La macro della libreria C. offsetof(type, member-designator) restituisce un numero intero costante di tipo size_tche è l'offset in byte di un membro della struttura dall'inizio della struttura. Il membro è dato da member-designator e il nome della struttura è dato in type.
Dichiarazione
Di seguito è riportata la dichiarazione per offsetof () Macro.
offsetof(type, member-designator)
Parametri
type - Questo è il tipo di classe in cui il designatore di membri è un designatore di membri valido.
member-designator - Questo è il designatore di membri del tipo di classe.
Valore di ritorno
Questa macro restituisce il valore di tipo size_t che è il valore di offset del membro nel tipo.
Esempio
L'esempio seguente mostra l'utilizzo di offsetof () Macro.
#include <stddef.h>
#include <stdio.h>
struct address {
char name[50];
char street[50];
int phone;
};
int main () {
printf("name offset = %d byte in address structure.\n",
offsetof(struct address, name));
printf("street offset = %d byte in address structure.\n",
offsetof(struct address, street));
printf("phone offset = %d byte in address structure.\n",
offsetof(struct address, phone));
return(0);
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
name offset = 0 byte in address structure.
street offset = 50 byte in address structure.
phone offset = 100 byte in address structure.