What are macros ?
This is one of more frequent questions that is asked. This was asked to me 2 times and both time, I messed it. I thought that I knew it but than still could not explain it properly.
First be clear on what is Preproessor which is a program that processes its input data to produce output that is used as input to another program.
Now Macros are preprocessors which are small code of snippets which are replaced in the code AS IT IS before compilation of the program.

What is Macros and prototype in C ? WHat is the difference ?
"What is the difference in Macros and prototype in C" is also asked many times.
Answer is macros are preprocessors and prototypes are the definition of a function it is also one kind of preprocessor
There is an excellent tutorial on the definition of Macros here http://gcc.gnu.org/onlinedocs/cpp/Macros.html
prototypes are declarations
That is prototypes are declarations of a function (with the arguments of the function specified) right?