MY mENU


Saturday 23 June 2012

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, butwithout it no real work gets done.