C | Macro & Preprocessor | Question 5

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <stdio.h>
#define ISEQUAL(X, Y) X == Y
int main()
{
    #if ISEQUAL(X, 0)
        printf("Geeks");
    #else
        printf("Quiz");
    #endif
    return 0;
}

chevron_right


Output of the above program?
(A) Geeks
(B) Quiz
(C) Any of Geeks or Quiz
(D) Compile time error


Answer: (A)

Explanation: The conditional macro #if ISEQUAL(X, 0) is expanded to #if X == 0. After the pre-processing is over, all the undefined macros are initialized with default value 0. Since macro X has not been defined, it is initialized with 0. So, Geeks is printed.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up