Warning: implode(): Invalid arguments passed in /www/wwwroot/jobquiz.info/mdiscuss.php on line 336 What will be the output of the program? #include<stdio.h> #define FUN(i, j) i##j int main() { int va1=10; int va12=20; printf("%d\n", FUN(va1, 2)); return 0; } ?->(Show Answer!)
1. What will be the output of the program? #include<stdio.h> #define FUN(i, j) i##j int main() { int va1=10; int va12=20; printf("%d\n", FUN(va1, 2)); return 0; }
Ask Your Doubts Here
Comments
By: guest on 01 Jun 2017 06.00 pm
The following program will make you understand about ## (macro concatenation) operator clearly. #include<stdio.h> #define FUN(i, j) i##j int main() { int First = 10; int Second = 20; char FirstSecond[] = "IndiaBIX"; printf("%s\n", FUN(First, Second) ); return 0; } Output: ------- IndiaBIX 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.