C++ map() 函数有什么作用

What does the C++ map() function do

我目前正在看下面的代码(可以是found here

void MPU6050::CalibrateAccel(uint8_t Loops,uint8_t OffsetSaveAddress) {
  double kP = 0.15;
  double kI = 8;
  float x;
  x = (100 - map(Loops, 1, 5, 20, 0)) * .01;
  kP *= x;
  kI *= x;
  PID( 0x3B,  OffsetSaveAddress,  kP, kI,  Loops);
}

具体来说,我很难理解这行:

x = (100 - map(Loops, 1, 5, 20, 0)) * .01;

在做什么?

我能为 map() 找到的最佳匹配函数 is here 但它似乎与传递给函数的整数参数不匹配。

显然我会 运行 这段代码,但不幸的是我还无法编译它。

我是否正确地找到了被调用的函数,这个函数在给定参数下的行为是什么?我假设这是一个 map() 函数,类似于其他 languages/frameworks 中的任何其他典型映射函数,例如 python、jquery 等

谁能指导我正确的方向?

mapmath 中定义,将数字从一个范围重新映射到另一个范围。语法是 map(value, fromLow, fromHigh, toLow, toHigh)

因此,map(Loops, 1, 5, 20, 0)) 意味着变量 Loops 的值最初将在 (1,5) 之间搜索,但结果将在 20 到 0 之间,因为它重新映射。