Рубрики

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

#include <stdio.h>
#define ISEQUAL(X, Y) X == Y

int main()

{

    #if ISEQUAL(X, 0)

        printf("Geeks");

    #else

        printf("Quiz");

    #endif

    return 0;

}

Вывод вышеуказанной программы?
(A) Вундеркинды
(B) Викторина
(C) Любой из вундеркиндов или викторины
(D) Ошибка времени компиляции

Ответ: (А)
Объяснение: Условный макрос #if ISEQUAL (X, 0) расширен до #if X == 0 . После завершения предварительной обработки все неопределенные макросы инициализируются со значением по умолчанию 0. Поскольку макрос X не был определен, он инициализируется с 0. Итак, Geeks печатается.

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

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

0.00 (0%) 0 votes