C 这行代码在Kilobot示例中做了什么?
我一直在尝试一些关于Kilobot的例子,尤其是。我在示例中遇到了这段代码C 这行代码在Kilobot示例中做了什么?,c,robotics,C,Robotics,我一直在尝试一些关于Kilobot的例子,尤其是。我在示例中遇到了这段代码 uint8_t offsets[32]; void message_rx(message_t *msg, distance_measurement_t *d) { if (modulo_clock > msg->data[0]) { if (modulo_clock - msg->data[0] < 16) offsets[modulo_clock
uint8_t offsets[32];
void message_rx(message_t *msg, distance_measurement_t *d) {
if (modulo_clock > msg->data[0]) {
if (modulo_clock - msg->data[0] < 16)
offsets[modulo_clock-msg->data[0]]++;
} else {
if (msg->data[0] - modulo_clock > 16)
offsets[modulo_clock + (32-msg->data[0])]++;
}
}
uint8_t偏移量[32];
无效消息接收(消息消息、距离测量){
if(模时钟>消息->数据[0]){
if(模时钟-消息->数据[0]<16)
偏移量[modulo_clock-msg->data[0]]+%;
}否则{
如果(消息->数据[0]-模时钟>16)
偏移量[modulo_clock+(32 msg->data[0])]++;
}
}
我只想知道偏移量[modulo_clock-msg->data[0]]++
和偏移量[modulo_clock+(PERIOD msg->data[0])]++
在代码中做了什么,因为我知道它们是数组,但只是混淆了这里的用法。偏移量
是整数数组
modulo_clock-msg->data[0]
是用作数组偏移量的索引的数字
offset[modulo_clock-msg->data[0]]
您可以在offset
++
是增量运算符modulo_clock-msg->data[0]
中增加(添加+1)偏移量中的数字
这同样适用于
偏移量[modulo_clock+(PERIOD msg->data[0])]++
增加偏移量
数组元素,其索引是在最外层的[]
内计算的。总的来说,前提是msg->data[0]
足够接近modulo_clock
,偏移量
数组中的一个元素是根据它们的相对值选择的,并且该元素的值是递增的。