union test { int x; char arr[8]; int y; }; int main() { printf("%d", sizeof(union test)); return 0; }
Prediga la salida del programa anterior. Suponga que el tamaño de un entero es de 4 bytes y el tamaño de un carácter es de 1 byte. Suponga también que no se necesita alineación.
(A) 12
(B) 16
(C) 8
(D) Error del compilador
Respuesta: (C)
Explicación: cuando declaramos una unión, la memoria asignada para una variable de unión del tipo es igual a la memoria necesaria para el miembro más grande de ella , y todos los miembros comparten este mismo espacio de memoria. En el ejemplo anterior, «char arr[8]» es el miembro más grande. Por lo tanto, el tamaño de la prueba de unión es de 8 bytes.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA