我一直在测试一些嵌套的宏调用,它们按预期工作(......正如我所料!)例如,假设一个虚构的add宏和以下表达式:
add(1, add(2, 3))
首先,内部 add 被扩展 (2 + 3),其次外部 add 完成它的部分 (1 + (2 + 3))。我已经看到外部宏在输入表达式中没有收到来自内部调用的任何噪音,因此内部扩展似乎对它完全透明。这个事实是否总是成立(即使是更复杂的宏和类型)?这样做安全吗?
我一直在测试一些嵌套的宏调用,它们按预期工作(......正如我所料!)例如,假设一个虚构的add宏和以下表达式:
add(1, add(2, 3))
首先,内部 add 被扩展 (2 + 3),其次外部 add 完成它的部分 (1 + (2 + 3))。我已经看到外部宏在输入表达式中没有收到来自内部调用的任何噪音,因此内部扩展似乎对它完全透明。这个事实是否总是成立(即使是更复杂的宏和类型)?这样做安全吗?