¿Cuál es la salida del siguiente programa?
#include <stdio.h> #define macro(n, a, i, m) m##a##i##n #define MAIN macro(n, a, i, m) int MAIN() { printf("GeeksQuiz"); return 0; }
(A) Error del compilador
(B) GeeksQuiz
(C) PRINCIPAL
(D)
Respuesta principal : (B)
Explicación: El programa tiene un preprocesador que reemplaza «PRINCIPAL» con «macro (n, a, i, m)». La línea “macro(n, a, i, m)” se reemplaza nuevamente por main. La clave a tener en cuenta es el operador de pegado de tokens ## que concatena parámetros a la macro.
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