Difference between macro and function in C Programming

Difference between macro and function

 No  Macro Function
1 Macro is Preprocessed Function is Compiled
2 No Type Checking Type Checking is Done
3 Code Length Increases Code Length remains Same
4 Use of macro can lead
to side effect
No side Effect
5 Speed of Execution is
Speed of Execution is Slower
6 Before Compilation macro name is replaced by macro value During function call , Transfer of Control takes place
7 Useful where small code appears many time Useful where large code appears many time
8 Generally Macros do not extend beyond one line Function can be of any number of lines
9 Macro does not Check Compile Errors Function Checks Compile Errors