Discussion :: C Preprocessor
-
What will be the output of the program?
#include
Answer : Option B
Explanation :
The following program will make you understand about ## (macro concatenation) operator clearly.
#include
#define FUN(i, j) i##j
int main()
{
int First = 10;
int Second = 20;
char FirstSecond[] = "FresherGATE";
printf("%s\n", FUN(First, Second) );
return 0;
}
Output:
-------
FresherGATE
The preprocessor will replace FUN(First, Second) as FirstSecond.
Therefore, the printf("%s\n", FUN(First, Second) ); statement will become as printf("%s\n", FirstSecond );
Hence it prints IndiaBIX as output.
Like the same, the line printf("%d\n", FUN(va1, 2)); given in the above question will become as printf("%d\n", va12 );.
Therefore, it prints 20 as output.
Be The First To Comment