2

m4 マクロで与えられた引数リストの最後の引数をどのように参照しますか? 最後の引数を取得し、それに基づいてマクロ展開を生成する必要があります。

4

2 に答える 2

2

これは特にエレガントではありませんが、機能します。

define(`last',`ifelse(`$#',`0',`',`$#',`1',`$1',`last(shift($@))')')dnl
last(foo,bar,baz)
于 2013-06-06T22:05:34.203 に答える
0
# more elegant solution:
changequote([,])
define([LEN], [$#])
define([LAST], [pushdef([$0], $LEN($@))$0($@)[]popdef([$0])])
define([LAST_BUT_ONE], [pushdef([$0], $decr(LEN($@)))$0($@)[]popdef([$0])])

LAST(foo, bar, baz)

LAST_BUT_ONE(foo, bar, baz)
于 2016-05-08T20:29:07.820 に答える