En lenguaje C, ¿cómo obtener la dirección de inicio de struct desde la dirección de su miembro?cómo obtener la dirección de inicio de struct desde la dirección de su miembro
struct type1 {
//...
int member1;
//...
};
struct type1 obj1;
Y ptr1
es la dirección del miembro de member1
en obj1
, cómo definir
macro #define start_add(ptr1, type1, member1)
para obtener de obj1 dirección
inicio?
creo que usted tiene un extra '&' 'antes (ptr1)'. 'ptr1' ya es la dirección del miembro. –
Muy bien, arreglado. –
También debe agregar un conjunto adicional de corchetes en todo el resultado de la macro; recuerde que '->' tiene una precedencia mayor que '(tipo)', de modo que si desea aplicar '->' al resultado, los necesitará. – caf