C | Loops & Control Structure | Question 2
#include <stdio.h> #define PRINT(i, limit) do \ { \ if (i++ < limit) \ { \ printf ( "GeeksQuiz\n" ); \ continue ; \ } \ } while (0) int main() { int i = 0; PRINT(i, 3); return 0; } |
How many times GeeksQuiz is printed in the above program ?
(A) 1
(B) 3
(C) 4
(D) Compile-time error
Answer: (A)
Explanation: If a macro needs to be expanded in multiple lines, it is the best practice to write those lines within do{ }while(0) to avoid macro side effects. After GeeksQuiz is printed once, the control reaches the while statement to check for the condition. Since, the condition is false, the loop gets terminated.