(си, не плюсы) uint_32[n] на uint_8[n*4], чтобы не вылезало варнингов? Что-то гугл совсем не помогает...
а зачем ?
uint_32 buf[n]; const char *p = (char *)buf;
Есть массивчик uint8_t. Его нужно записать во флэш микроконтроллера. ЗАпись производится исключительно uint32_t (по 4 байта). Не хотел бы заниматься битовыми сдвигами
что-то ты путаешься в показаниях...
uint8_t buf[n]; const uint_32 *p = (uint_32 *)buf; Но варнинги могут быть.
С варнингами работает, вопрос был именно в том, чтобы без них
задизабли варнинг, и всё.
memcpy сделать в другой массив нужного типа
а зачем? Варнинг - без оверхеда. Копирование - с оверхедом
Не, копирование будет в любом случае, потому что с адреса в ячейке ОЗУ осуществляется запись по адресу ячейки флэша (единое адресное пространство). Записывать нужно каждый раз по 2 uint32_t
Ну , так зачем тебе два копирования вместо одного?
Мне два копирования и не нужно. Я хотел скастить и копировать по индексу массива
Мб побитовыми операциями? uint32_t value = 0x11223344; uint8_t dst[] = { (value & 0x000000ff) >> 0, (value & 0x0000ff00) >> 8, (value & 0x00ff0000) >> 16, (value & 0xff000000) >> 24 };
Ну это был первый вариант, но нет смысла в нем - лишние действия
Скасти, и копируй! Варнинги пофиг
Обсуждают сегодня