Supongamos defino una unión como esta:Comprender el contenido de la memoria de una unión
#include <stdio.h>
int main() {
union u {
int i;
float f;
};
union u tst;
tst.f = 23.45;
printf("%d\n", tst.i);
return 0;
}
¿Puede alguien decirme lo que la memoria donde se almacena tst
se parecerá?
Estoy tratando de entender la salida 1102813594
que produce este programa.
Hmm, en lugar de "el mayor de sus componentes", probablemente se refiera a la más restrictiva. –
@rogue: según el estándar: "El tamaño de una unión es suficiente para contener el mayor de sus miembros" –
iirc, de k & r, "Aunque las máquinas varían, para cada máquina hay un tipo más restrictivo: si el más tipo restrictivo se puede almacenar en una dirección particular, todos los otros tipos pueden ser también ". - pero supongo que tienes razón, ya que el estándar siempre es correcto, + 1 en ambos sentidos. –