Open In App
Related Articles

C | Macro & Preprocessor | Question 14

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

What is the output of following program? 

C

#include <stdio.h>
#define macro(n, a, i, m) m##a##i##n
#define MAIN macro(n, a, i, m)
 
int MAIN()
{
    printf(\"GeeksQuiz\");
    return 0;
}

                    
(A)

Compiler Error

(B)

GeeksQuiz

(C)

MAIN

(D)

main



Answer: (B)

Explanation:

The program has a preprocessor that replaces \”MAIN\” with \”macro(n, a, i, m)\”. The line \”macro(n, a, i, m)\” is again replaced by main. The key thing to note is token pasting operator ## which concatenates parameters to macro.



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

Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads