It's been 2 decades since I last programmed in C. But all I remember of Macros is that some of the most difficult bugs to spot in C code lives in Macros. A missing paranthesis, unthoughtful coding can make it extremely difficult to spot the bug.
Also makes code unreadable...Check out Linux source...