1. What is a macro? name some examples of predefined macros?
Ans:
A macro is a named constant, which increases program’s readability.
Some predefined macros:
NULL,
YELLOW,
SEEK_SET,
EOF
2. What is the advantage of macro with arguments, compared to functions with arguments.
Ans:
Faster execution, because as the macro template is replaced with its expansion code at the point of its use, no overhead of transfer of control from & to a function.
Macros with arguments are usually used for small mathematical formulae.
Ex1: #define PRODUCT( p ) p * p
Ex2 : #define AREA( r ) 3.142517 * r * r
3.What is the important point to be noted in macros with arguments?
Ans:
Putting parenthesis in the macro expansion (otherwise the result may not be as expected).
Eg:
#define SQUARE( p ) p * p
int square( int p )
{
return (p * p);
}
main()
{
int a = 3, b = 2, x, y;
clrscr();
x = SQUARE( a + b );
y = square ( a + b);
printf("Result from macros : %d\n", x); ( 11
printf("Result from function : %d", y); ( 25
getch();
}
4. What is # called as?
Ans:
Preprocessor directive
5. What are preprocessor directives?
Ans:
What ever followed after # is called as preprocessor directive.
Eg: #include , #define etc.
These direct the preprocessor program to do a specific task.
6. What are the steps before execution?
Ans:
Editing
(On an editor s/w by a programmer)
Preprocessing
(by preprocessor s/w)
Parsing
(By parser – (syntax checking) s/w)
Compilation
(By Compiler s/w)
Linking
(By Linker s/w)
Loading
(By loader s/w (a part of OS))
Execution
(By CPU)
7. What are the different types of macros?
Ans:
a) Simple macros
b) Macros with argument
8. Why macros are defined in uppercase?
Ans:
Just a convention (easily recognized by the programmer)
9. What are the disadvantages of macros?
Ans:
If we use them instead of function with arguments, then evaluation of arguments doesn't take place.
Type checking is not done, which may lead to incorrect results.
Ans:
A macro is a named constant, which increases program’s readability.
Some predefined macros:
NULL,
YELLOW,
SEEK_SET,
EOF
2. What is the advantage of macro with arguments, compared to functions with arguments.
Ans:
Faster execution, because as the macro template is replaced with its expansion code at the point of its use, no overhead of transfer of control from & to a function.
Macros with arguments are usually used for small mathematical formulae.
Ex1: #define PRODUCT( p ) p * p
Ex2 : #define AREA( r ) 3.142517 * r * r
3.What is the important point to be noted in macros with arguments?
Ans:
Putting parenthesis in the macro expansion (otherwise the result may not be as expected).
Eg:
#define SQUARE( p ) p * p
int square( int p )
{
return (p * p);
}
main()
{
int a = 3, b = 2, x, y;
clrscr();
x = SQUARE( a + b );
y = square ( a + b);
printf("Result from macros : %d\n", x); ( 11
printf("Result from function : %d", y); ( 25
getch();
}
4. What is # called as?
Ans:
Preprocessor directive
5. What are preprocessor directives?
Ans:
What ever followed after # is called as preprocessor directive.
Eg: #include , #define etc.
These direct the preprocessor program to do a specific task.
6. What are the steps before execution?
Ans:
Editing
(On an editor s/w by a programmer)
Preprocessing
(by preprocessor s/w)
Parsing
(By parser – (syntax checking) s/w)
Compilation
(By Compiler s/w)
Linking
(By Linker s/w)
Loading
(By loader s/w (a part of OS))
Execution
(By CPU)
7. What are the different types of macros?
Ans:
a) Simple macros
b) Macros with argument
8. Why macros are defined in uppercase?
Ans:
Just a convention (easily recognized by the programmer)
9. What are the disadvantages of macros?
Ans:
If we use them instead of function with arguments, then evaluation of arguments doesn't take place.
Type checking is not done, which may lead to incorrect results.