C | Macro & Preprocessor | Question 9

Output?

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<stdio.h> 
#define f(g,g2) g##g2 
int main() 
   int var12 = 100; 
   printf("%d", f(var,12)); 
   return 0; 
}

chevron_right


(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; 
}


My Personal Notes arrow_drop_up