D
Size: a a a
D
D
O
O
O
ЮР
ㅤㅤ
АО
r
r
r
АО
r
r
r
АО
aa
AF
bool fn(const uint8_t* buf, uint16_t len) {Как это написать не используя memcpy и доп переменные.
const uint32_t calculated_checksum = calculate_checksum(buf, len);
return // Сравнить calculated_checksum и последние 4 байта buf
}
calculated_checksum == (значение типа uint32_t по адресу &buf[len-5] )
* Подразумевается что про endianness я где-то уже позаботилсяcalculated_checksum == *( (uint32_t *)(&buf[DMAFT_BUFFER_SIZE - 5]) )Вроде как
&buf[DMAFT_BUFFER_SIZE - 5]дает нам uint8_t* указатель на 4й с конца байт (тип буфера uint8_t так что именно байт)
(uint32_t *)тупо преобразует тип указателя
*()
дает значение по этому указатель