Warning: implode(): Invalid arguments passed in /www/wwwroot/jobquiz.info/mdiscuss.php on line 336 What will be the output of the program? #include #define str(x) #x #define Xstr(x) str(x) #define oper multiply int main() { char opername = Xstr(oper); printf("%s\n", opername); return 0; } ?->(Show Answer!)
1. What will be the output of the program? #include #define str(x) #x #define Xstr(x) str(x) #define oper multiply int main() { char opername = Xstr(oper); printf("%s\n", opername); return 0; }
Ask Your Doubts Here
Comments
By: guest on 01 Jun 2017 06.00 pm
The macro #define str(x) #x replaces the symbol 'str(x)' with 'x'. The macro #define Xstr(x) str(x) replaces the symbol 'Xstr(x)' with 'str(x)'. The macro #define oper multiply replaces the symbol 'oper' with 'multiply'. Step 1: char *opername = Xstr(oper); The varible *opername is declared as an pointer to a character type. => Xstr(oper); becomes, => Xstr(multiply); => str(multiply) => char *opername = multiply Step 2: printf("%s\n", opername); It prints the value of variable opername. Hence the output of the program is "multiply"