如何在c中从字节数组转换为字数组

时间:2010-01-22 04:24:24

标签: c

使用c,我已经定义了一个字节和单词如下:

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

这使我可以轻松地从单词到字节,但我不确定一个好方法走另一条路。是否有可能做类似于从字节*到字*的转换,或者我是否必须坚持迭代地将字节复制到字?

2 个答案:

答案 0 :(得分:3)

关于c的一个伟大而可怕的事情是你可以使用一个无效指针并将它投射到任何东西上。只要你知道你在做什么,它就会起作用,但不是你想养成的习惯。

答案 1 :(得分:1)

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));