【发布时间】:2017-04-06 21:47:48
【问题描述】:
我一直在尝试一些有关 Kilobots 的示例,尤其是 Synchronization of LEDS。我在示例中遇到过这段代码。
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])]++;
}
}
我只是想知道offsets[modulo_clock-msg->data[0]]++ 和offsets[modulo_clock + (PERIOD-msg->data[0])]++ 在代码中做了什么,因为我知道它们是数组,但只是对这里的用法感到困惑。
【问题讨论】:
-
递增
offsets数组元素,其索引在最外层[]内计算。 -
总体而言,只要
msg->data[0]与modulo_clock足够接近,offsets数组的一个元素会根据它们的相对值进行选择,并且该元素的值会递增。跨度>