FUNCTIONS AND MACROS

Macros vs Functions

Macros are pre-processed which means that all the macros would be processed before your program compiles. However, functions are not preprocessed but compiled.
See the following example of Macro:
#include<stdio.h>
#define NUMBER 10
int main()
{
     printf("%d", NUMBER);
     return 0;
}
Output:
10
See the following example of Function:
#include<stdio.h>
int number()
{
    return 10;
}
int main()
{
    printf("%d", number());
    return 0;
}
Output:
10

Difference between macro and function

 No MacroFunction
1Macro is PreprocessedFunction is Compiled
2No Type CheckingType Checking is Done
3Code Length IncreasesCode Length remains Same
4Use of macro can lead
to side effect
No side Effect
5Speed of Execution is
Faster
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

No comments:

Post a Comment