#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