Come posso determinare l'offset in byte di un campo all'interno di una struttura?
Il C ANSI definisce il macro offsetof(), che dovrebbe essere utilizzato quando e` disponibile; vedere <stddef.h>. Se non c'e` una possibile implementazione e`
#define offsetof(type, mem) ((size_t) \ ((char *)&((type *)0)->mem - (char *)(type *)0))
Questa implementazione non e` portabile al 100%; alcuni compilatori possono legittimamente rifiutare di accettarla.
Vedere domanda 2.15 per un suggerimento per l'uso.
Riferimenti:
ANSI Sez. 4.1.5
ISO Sez. 7.1.6
Rationale Sez. 3.5.4.2
H&S Sez. 11.1 pp. 292-3
Leggere di seguito: prev prossima su cima
Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback