我想记住m4
宏调用的参数,以便以后使用,即使用另一个宏符号作为一种变量,我可以稍后调用该参数。
然而,我的m4
会话没有像预期的那样工作:
define(`A',define(`B',$1))
⇒
A(17)
⇒
B
⇒
defn(`B')
⇒$1
我只是希望B
的值被解析为17,如果A
的最后一次调用是A(17)
。如何做到这一点?
刚刚找到:
define(`A',`define(B,$1)')
就可以了。通过引用,define的解析被推迟到' A'的实际调用。