函数的理解

void Left_turn(int Pwm1, int Pwm2)
{
    Pwm1 = Position_FeedbackControl(0, -600); // 90: -600 600  180: -1200 1200
    Pwm2 = Position_FeedbackControl2(0, 600);
}
int main()
{
    int externalPwm1 = 0;
    int externalPwm2 = 0;

    Left_turn(externalPwm1, externalPwm2);

    // 在这里,externalPwm1 和 externalPwm2 的值仍然是 0,
    // 因为 Left_turn 函数内部对参数的修改不会影响到外部变量。
}

Left_turn 函数中,当您传递 int Pwm1int Pwm2 作为参数时,这些参数是按值传递的。这意味着函数内部对这些参数所做的任何修改都不会影响到函数外部的原始变量。

  • 外部变量不会改变:函数外部的 externalPwm1 和 externalPwm2 的值不会因为调用 Left_turn 函数而发生改变。
  • 内部参数被修改:函数内部的 Pwm1 和 Pwm2 参数被修改,但这些修改只在函数作用域内有效。

二、如果您希望函数内部的计算结果能够被函数外部使用,可以考虑使用以下方法之一:

  1. 返回值:让函数返回一个新的结构体或元组,其中包含计算结果。
  2. 指针或引用:传递变量的指针或引用到函数中,这样函数内部可以直接修改外部变量。

使用返回值的方法示例、

struct PWMValues {
    int Pwm1;
    int Pwm2;
};

PWMValues Left_turn()
{
    PWMValues result;
    result.Pwm1 = Position_FeedbackControl(0, -600);
    result.Pwm2 = Position_FeedbackControl2(0, 600);
    return result;
}

int main()
{
    PWMValues pwmValues = Left_turn();
    // 使用 pwmValues.Pwm1 和 pwmValues.Pwm2
}

使用指针的方法示例:

void Left_turn(int* Pwm1, int* Pwm2)
{
    *Pwm1 = Position_FeedbackControl(0, -600);
    *Pwm2 = Position_FeedbackControl2(0, 600);
}

int main()
{
    int Pwm1, Pwm2;
    Left_turn(&Pwm1, &Pwm2);
    // 使用 Pwm1 和 Pwm2
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值