Answer is D.
Reason: Since X is a macro, the statement above will expand to “++8” after the preprocessor is run. This means “8” is the operand of the prefix increment operator. And, because 8 is an rvalue it can not be used as an argument to “++”. This, in turn, means that the code above will not compile.