Here's a theoretical example of "useful".
Let's say you have a macro that is working well and does exactly what you need. However, the macro utilizes some global macro variables created earlier in the program. What happens if you want to use that macro somewhere else, in some other program that hasn't run all the earlier code? The new program might not have the same set of global macro variables available, or it might want to supply different values for those global variables. So you modify your beautiful, well-working macro by adding two parameters to the macro definition. For the original program, calling the macro supplies the values of those global macro variables as the parameters. But for a new program, you could supply other values to those parameters, values that are relevant to the new program.
... View more