C | Macro y preprocesador | Pregunta 14

¿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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *