C++ 为什么此函数不会切换此交互器值

C++ Why wont this function toggle this interger value?

本文关键字:交互 为什么 函数 C++      更新时间:2023-10-16
int Test = 11;

void Toggle(const char* Name, int Offset, int Value){
     Offset ^= Value;
     printf("%sn [%s^7]", Name, Offset ? "^2ON" : "^1OFF");
}

在主要...

void main(){
    Toggle("Unlimited Ammo", Test, 100);
    Toggle("Unlimited Ammo", Test, 100);
}

我很确定XOR应该切换它。我不知道为什么它对我不起作用。

默认情况下,C++是按值传递的,这意味着该函数会获取Test本地副本。对它的更改不会反映回调用方。

如果要通过引用传递,则必须使用...等着...参考资料 :-(

您可以使用函数签名来执行此操作,例如:

void Toggle(const char* Name, int &Offset, int Value) ...