Open In App

C | Macro & Preprocessor | Question 2

Last Updated : 02 Feb, 2013
Like Article
Like
Save
Share
Report

C




#include <stdio.h>
#if X == 3
    #define Y 3
#else
    #define Y 5
#endif
 
int main()
{
    printf(\"%d\", Y);
    return 0;
}


What is the output of the above program?
 

(A)

3
 

(B)

5
 

(C)

3 or 5 depending on value of X
 

(D)

Compile time error
 


Answer: (B)

Explanation:

In the first look, the output seems to be compile-time error because macro X has not been defined. In C, if a macro is not defined, the pre-processor assigns 0 to it by default. Hence, the control goes to the conditional else part and 5 is printed. See the next question for better understanding.
 


Quiz of this Question
Please comment below if you find anything wrong in the above post


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads