Advantages of a macro over a function?
C Interview Questions and Answers
(Continued from previous question...)
Advantages of a macro over a function?
Macro gets to see the Compilation environment, so it
can expand __TIME__ __FILE__ #defines. It
is expanded by the preprocessor.
For example, you can’t do this without macros
#define PRINT(EXPR) printf( #EXPR “=%d\n”, EXPR)
PRINT( 5+6*7 ) // expands into printf(”5+6*7=%d”, 5+6*7 );
You can define your mini language with macros:
#define strequal(A,B) (!strcmp(A,B))
Macros are a necessary evils of life. The purists don’t like them,
but without it no real work gets done.
(Continued on next question...)
Other Interview Questions
|