最初の呼び出しでは1に、2番目の呼び出しでは2に拡張するm4マクロ(パラメータなし)を定義できますか?つまり、呼び出された回数を格納できる内部メモリが必要です。これは可能ですか?
ベストアンサー1
counter
2つのマクロ、つまり現在の値を格納するマクロとcount
その値に展開し、「カウンタ」をオーバーライドするマクロを使用してこれを実行できます。たとえば、次のようになります。
define(`counter',`0')dnl
define(`count',`define(`counter',eval(counter+1))counter')dnl
count
このマクロを使用すると、最初に次のcounter
値を保存するようにオーバーライドされ、次に(現在の値を1ずつ増やして)その値が使用されます。
単一のマクロを使用してこれを行う方法がわかりません。したがって、これがあなたの質問の重要な側面である場合、これは答えではありません。