Multiline macros are very powerful and used correctly, is the right thing because it makes the code more managable. But this particular case sounds like "not the right place".
There are several things to consider when writing code:
1. Readability. The ability for a new reader [or yourself after 4 months] to read the code and understand what it does. Multiline macros make the code harder to read, because you need to understand what's happening in the macro expansion.
2. Debuggability. The ability to understand what goes on inside the macro, when single-stepping the code in a debugger is nearly non-existant [unless you switch to assembler mode, and step through the assembly code - doing that for a three-level nested for-loop macro would NOT be my idea of "easy", and I have done my fair share of debugging in assembler]. Most C debuggers treat one source line as one step, so when you step on a line that contains your multi-line macro, then it will just do ONE step all across the entire macro, not one portion at a time.
3. Portability/extensibility. The ability to change the code to do something slightly different. Again, multiline macros make this very difficult.
4. Performance. Multiline macros make little difference here.
In the end, it's your code, you decide how you solve your problems. But I think you are doing this "because it's hard work typing", rather than because you're concerned about some of the above.
--
Mats