Estoy buscando un fragmento de código que pueda indicarme el desplazamiento de un campo dentro de una estructura sin asignar una instancia de la estructura.C/C++ Desplazamiento de estructura
IE: dado
struct mstct {
int myfield;
int myfield2;
};
podría escribir:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
Y conseguir "compensado 4" para la salida. ¿Cómo puedo hacerlo sin esa declaración de "cosa mstct"/asignación de una?
Sé que & <struct> estructura no siempre apunta al primer byte del primer campo de la estructura, puedo explicar eso más adelante.
No exactamente lo que quería, porque no tengo stddef.h, pero responde mi pregunta con: #define offsetof (TYPE, MEMBER) ((size_t) & ((TYPE *) 0) -> MIEMBRO) – davenpcj
Wow - no stddef.h? Solo por curiosidad, ¿podría preguntar qué estás usando? –
Está en el estándar C99, por lo que sugeriría obtener un nuevo compilador. – wnoise