#include <stdio.h> #define PRINT(i, limit) do \ { \ if (i++ < limit) \ { \ printf ( "GeeksQuiz\n" ); \ continue ; \ } \ } while (1) int main() { PRINT(0, 3); return 0; } |
How many times GeeksQuiz is printed in the above program?
(A) 1
(B) 3
(C) 4
(D) Compile-time error
Answer: (D)
Explanation: The PRINT macro gets expanded at the pre-processor time i.e. before the compilation time. After the macro expansion, the if expression becomes: if (0++ < 3). Since 0 is a constant figure and represents only r-value, applying increment operator gives compile-time error: lvalue required. lvalue means a memory location with some address.
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.