如何将uint16_t转换为c中的char数组?

时间:2014-01-23 11:18:50

标签: c

有以下数据

uint16_t a[1] = { 0x1111 };

我想将char b[]转换为:

char b[1] = { 0x1111 };

如何在C程序中执行此操作?

2 个答案:

答案 0 :(得分:0)

0x1111大于字符(类型char ...即uint8_t)可以占用的最大值...所以可能你需要一个有两个的数组,比如:char b[2] = { 0x11, 0x11 };

答案 1 :(得分:0)

首先:char b[1]不足以容纳uint16_t a[1]的两个字节。

如果你想分配一份副本,那么memcpy是一种方式:

char b[sizeof(a)];
memcpy(b, a, sizeof(a));

如果你想将它作为char类型别名,你可以只使用指针:

char * b = (char *)a;