如何在 Circom 中通过引用传递函数参数?

How to pass function argument by reference in Circom?

如何在 circom circuit language 中通过引用传递函数参数?

我正在尝试执行以下操作:

pragma circom 2.0.0;


function increment(foo) {
    foo++;
}

template MyTemplate() {
    signal input a;
    signal output b;

    var foo;
    foo = 0;

    increment(foo);
    log(foo);


    // ...
}

component main = MyTemplate();

我希望 log(pos) 输出 1,但我得到的是 0。是否需要某种方式将 pos 传递给 increment 以便它可以修改变量通过参考?

我决定使用 C 预处理器生成 circom 代码,所以现在我有:

main.circom: 
    cpp -P maintpl.circom > main.circom

在我的 Makefile 中

#define increment(foo) foo++

在我的 circom 代码中。