507 views
0 votes
0 votes
#include <stdio.h>
#define PRINT(i, limit) while (i < limit) \
                        { \
                            printf("GeeksQuiz "); \
                            i++; \
                        }  \
int main()
{
    int i = 0;
    PRINT(i, 3);
    return 0;
}


// Output: GeeksQuiz GeeksQuiz GeeksQuiz

1 Answer

Best answer
3 votes
3 votes

2nd line defines a multi-line macro. The slash at the end of line tells the preprocessor that the macro definition is continued on the next line. The preprocessor replaces any instance of the macro name by the macro definition. This process is called macro expansion and it occurs before compilation. After this stage the above code will become,

#include <stdio.h>
#define PRINT(i, limit) while (i < limit) \
                        { \
                            printf("GeeksQuiz "); \
                            i++; \
                        }  \
int main()
{
    int i = 0;
    while (i < limit) { printf("GeeksQuiz ");i++;}
    return 0;
}

Therefore it prints "GeeksQuiz" three times.

selected by

Related questions

0 votes
0 votes
1 answer
1
SSR17 asked Feb 29
204 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how
2 votes
2 votes
1 answer
2
rupamsardar asked Aug 30, 2023
466 views
#include <stdio.h int f(int x) { if(x%2==0) { return f(f(x-1)); } else return (x++); } int main() { printf("%d",f(12)); ret...
5 votes
5 votes
2 answers
3
saurabh0709 asked Aug 1, 2023
1,136 views
What will be the output of the following code? _______ #include <stdio.h int main(){ char val=250; int ans; ans= val+ !val + ~val + ++val; printf("%d", ans); return 0; }
2 votes
2 votes
1 answer
4