我正在尝试将结构部分传递给函数,这可能吗?
我想创建像下面的 setLeftMotorSpeed
这样的通用函数,并向它们传递我想要的任何东西,在这种情况下,我需要通过指针设置 robot.leftMotorSpeed
例子:
typedef struct
{
int maximumSpeed;
int leftMotorSpeed;
int rightMotorSpeed;
int timesAboveMaximumSpeed;
int batteryLevel;
int collisions;
}robot;
void setLeftMotorSpeed(int *speed, int *leftMotorSpeed, int *rightMotorSpeed)
{
*leftMotorSpeed = *speed;
}
void chooseRequest(int *command, int *speed, robot RP6)
{
switch(*command)
{
case 1:
setMaximumSpeed(speed, &RP6.maximumSpeed);
break;
case 2:
getMaximumSpeed(speed, &RP6.maximumSpeed);
break;
case 3:
setLeftMotorSpeed(speed, &RP6.leftMotorSpeed, &RP6.rightMotorSpeed);
moveAtSpeed(RP6.leftMotorSpeed, RP6.rightMotorSpeed);
break;
case 4:
setRightMotorSpeed(speed, &RP6.leftMotorSpeed, &RP6.rightMotorSpeed);
moveAtSpeed(RP6.leftMotorSpeed, RP6.rightMotorSpeed);
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
break;
}
}
最佳答案
只是
robot my_robot;
setLeftMotorSpeed(&speed, &my_robot.leftMotorSpeed, &rightMotorSpeed);
这将起作用并设置 my_robot.leftMotorSpeed
的值,因为您显然需要它。
关于c - 如何将结构属性作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28196039/