У меня есть функция, которая выполняет операцию над массивом из uint8_t
длины 32. Я хочу передать ему массив из uint16_t
длиной 16 и попросить его выполнить одну операцию в этом массиве побайтно.Как преобразовать массив uint16_t в массив uint8_t?
Я попытался сделать это:
uint8_t byteArray[32];
void function(uint16_t *inArray)
{
byteArray = (uint8_t *) inArray;
... do the byte-by-byte operations on byteArray
}
, но я получаю сообщение об ошибке:
incompatible types when assigning to type 'uint8_t[32]' from type 'uint8_t *'
Кто-нибудь знает, что я делаю неправильно?
Я уверен, что 'byteArray' имеет тип, но нам остается загадкой, поскольку вы решили не показывать его. Попробуйте 'uint8_t * byteArray = ....'. Редактировать: Я вижу. Его над фрагментом кода. Предложение все еще стоит. – WhozCraig