C | Macro y preprocesador | Pregunta 5

#include <stdio.h>
#define ISEQUAL(X, Y) X == Y
int main()
{
    #if ISEQUAL(X, 0)
        printf("Geeks");
    #else
        printf("Quiz");
    #endif
    return 0;
}

Salida del programa anterior?
(A) Geeks
(B) Quiz
(C) Cualquiera de Geeks o Quiz
(D) Error de tiempo de compilación

Respuesta: (A)
Explicación: La macro condicional #if ISEQUAL(X, 0) se expande a #if X == 0 . Una vez que finaliza el preprocesamiento, todas las macros no definidas se inicializan con el valor predeterminado 0. Dado que la macro X no se ha definido, se inicializa con 0. Entonces, Geeks se imprime.

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 *