C | Estructura y Unión | Pregunta 7

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *