#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