Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Не ясно, что происходит с данными при выполнении кода.

#c #cpp


Вот часть кода.
Не ясно, что делается в циклах. Не понятен даже сам синтаксис.
typedef struct {
    uint8_t dst;
    uint8_t regnum;
    uint8_t len;
    uint8_t *data;
    uint8_t checksum;
} __attribute__((__packed__)) pkt_t;

    for (i = 0; i < 3; i++)
        pkt.checksum += ((uint8_t *)&pkt)[i];
    for (i = 0; i < len; i++)
        pkt.checksum += ((uint8_t *)data)[i];
    


Ответы

Ответ 1



В первом цикле полю checksum структуры присваивается значение суммы значений первых трех байтов, составляющих структуру pkt. Во втором цикле к этому значению указанного поля прибавляется сумма значений len байтов массива переменных uint8_t, на который указывает поле data.

Комментариев нет:

Отправить комментарий