Рубрики

C | Макро и препроцессор | Вопрос 14

Каков вывод следующей программы?

#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) Ошибка компилятора
(B) GeeksQuiz
(C) ГЛАВНАЯ
(D) главная

Ответ: (Б)
Объяснение: В программе есть препроцессор, который заменяет «MAIN» на «macro (n, a, i, m)». Строка «macro (n, a, i, m)» снова заменяется основной. Главное, на что нужно обратить внимание, это оператор вставки токена ##, который объединяет параметры в макрос.
Тест на этот вопрос

Рекомендуемые посты:

C | Макро и препроцессор | Вопрос 14

0.00 (0%) 0 votes