Difference between Macro and Function in C

Macro
Function
1. Macro is pre-processed1. Function is not pre-processed
2. It is not compiled2. It is compiled
3. Macros do not check for compilation error3. Function checks for compilation error
4. Macros are faster in execution than function4. Functions are slower in execution than Macro
5. A Macro is written at the beginning of a C Program5. A Function is written as a statement block of a C Program
6. In Macro, you can't do recursion6. In Function, you can do recursion
7. Macros are useful when a small piece of code used in a program.7. Functions are useful when a large piece of code used in a program.