C | Macro y preprocesador | Pregunta 2

#include <stdio.h>
#if X == 3
    #define Y 3
#else
    #define Y 5
#endif
  
int main()
{
    printf("%d", Y);
    return 0;
}

¿Cuál es la salida del programa anterior?
(A) 3
(B) 5
(C) 3 o 5 dependiendo del valor de X
(D) Error de tiempo de compilación

Respuesta: (B)
Explicación: A primera vista, la salida parece ser un error de tiempo de compilación porque la macro X tiene no ha sido definido. En C, si una macro no está definida, el preprocesador le asigna 0 por defecto. Por lo tanto, el control va a la parte else condicional y se imprime 5. Vea la siguiente pregunta para una mejor comprensión.

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 *