Difference between macro and function in C Programming

Difference between macro and function

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