Используя c, я определил байт и слово следующим образом:
typedef unsigned char byte; typedef union { byte b[4]; unsigned long w; } word;
Это позволяет мне легко переходить от слов к байтам, но я не уверен, что есть хороший способ пойти другим путем. Можно ли сделать что-то вроде приведения от байта * к слову * или мне нужно придерживаться итеративного копирования байтов в слова?
Одна из самых больших и страшных вещей в c - вы можете взять указатель на пустоту и привести его ко всему. Пока вы знаете, что делаете, это будет работать, но не то, к чему вы хотите привыкнуть.
const byte input[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; unsigned long output[sizeof(input) / sizeof(unsigned long)]; memcpy(output, input, sizeof(input));