Как преобразовать массив байтов в массив слов в c - PullRequest
1 голос
/ 22 января 2010

Используя c, я определил байт и слово следующим образом:

typedef unsigned char byte;
typedef union {
    byte b[4];
    unsigned long w;
} word;

Это позволяет мне легко переходить от слов к байтам, но я не уверен, что есть хороший способ пойти другим путем. Можно ли сделать что-то вроде приведения от байта * к слову * или мне нужно придерживаться итеративного копирования байтов в слова?

Ответы [ 2 ]

3 голосов
/ 22 января 2010

Одна из самых больших и страшных вещей в c - вы можете взять указатель на пустоту и привести его ко всему. Пока вы знаете, что делаете, это будет работать, но не то, к чему вы хотите привыкнуть.

1 голос
/ 22 января 2010
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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...