[Solved] How can memory be allocated to a macro? [closed]


You have define the same abc macro twice. Your compiler could have warned you like

warning: “abc” redefined #define abc “rd”

And you simply ignored the warning, which you shouldn’t, learn from warning. For good code practise define the macros under one tag, use #ifdef, #endif and #undef. for e.g

#ifdef first

#define abc 10

#endif

And the define second macro similarly.

Macros got replaced at preprocessor stage and it will consider last definition of abc.

Finally your code look like

int main() { printf("%d","rd"); return 0; }

Now %d expects argument of int type but you have provided of "Rd" i.e char* type. So it prints some garbage value.

How can memory be allocated to a macro? No memory is allocated for macros at runtime at all & these are just a textual replacement.

solved How can memory be allocated to a macro? [closed]