Output?
#include<stdio.h> #define f(g,g2) g##g2 int main()
{ int var12 = 100;
printf ( "%d" , f(var,12));
return 0;
} |
(A) 100
(B) Compiler Error
(C) 0
(D) 1
Answer: (A)
Explanation: The operator ## is called “Token-Pasting” or “Merge” Operator. It merges two tokens into one token. So, after preprocessing, the main function becomes as follows, and prints 100.
int main() { int var12 = 100; printf("%d", var12); return 0; }