write a program wch produces its own source code aas its
output?
Answer Posted / guest
#include <stdio.h>
int main(int argc, char** argv)
{
/* This macro B will expand to its argument, followed by a
printf
command that prints the macro invocation as a literal
string */
#define B(x) x; printf(" B(" #x ")\n");
/* This macro A will expand to a printf command that prints
the
macro invocation, followed by the macro argument itself. */
#define A(x) printf(" A(" #x ")\n"); x;
/* Now we call B on a command to print the text of the
program
up to this point. It will execute the command, and then
cause
itself to be printed. */
B(printf("#include <stdio.h>\n\nint main(int argc, char**
argv)\n{\n/*
This macro B will expand to its argument, followed by a
printf\n
command that prints the macro invocation as a literal
string
*/\n#define B(x) x; printf(\" B(\" #x \")\\n\");\n\n/*
This macro
A will expand to a printf command that prints the\n
macro invocation, followed by the macro argument itself.
*/\n#define A(x)
printf(\" A(\" #x \")\\n\"); x;\n\n/* Now we call B on
a command
to print the text of the program\n up to this point. It
will execute
the command, and then cause\n itself to be printed.
*/\n"))
A(printf("/* Lastly, we call A on a command to print the
remainder
of the program;\n it will cause itself to be printed,
and then
execute the command. */\n}\n"))
/* Lastly, we call A on a command to print the remainder of
the program;
it will cause itself to be printed, and then execute the
command. */
}
| Is This Answer Correct ? | 2 Yes | 4 No |
Post New Answer View All Answers
When would you use a pointer to a function?
Differentiate between null and void pointers.
If you know then define #pragma?
What is the use of typedef in structure in c?
praagnovation
How can I insert or delete a line (or record) in the middle of a file?
How is a null pointer different from a dangling pointer?
What is the difference between test design and test case design?
What is the purpose of macro in C language?
Explain that why C is procedural?
Explain bit masking in c?
What is the difference between array and pointer?
Why can't I perform arithmetic on a void* pointer?
What are the advantages of using linked list for tree construction?
Explain what are the standard predefined macros?