c preprocessor - C #define macros -


What I have here and I wonder how it works and what it actually does.

  #define NUM5 #define FTIMES (x) (x * 5) int main (zero) {int j = 1; Printf ("% d% d \ n", FTIMES (J +5), FTIMES (J +5));}  

It generates two integers: 26 and 30.

How does it?

The reason is that your macro print Expands:

  printf ("% d% d \ n", j + 5 * 5, (J + 5) * 5);  

Meaning:

  1 + 5 * 5 and (1 + 5) * 5  

Comments