有以下数据
uint16_t a[1] = { 0x1111 };
我想将char b[]
转换为:
char b[1] = { 0x1111 };
如何在C程序中执行此操作?
答案 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;