uint16_t a[1] = { 0x1111 };
我要轉換爲char b[]
爲:
char b[1] = { 0x1111 };
我怎麼能做到這一點在C程序?
uint16_t a[1] = { 0x1111 };
我要轉換爲char b[]
爲:
char b[1] = { 0x1111 };
我怎麼能做到這一點在C程序?
0x1111
比最大值的字符(char
型的...即:uint8_t
)大可以採取...所以可能你需要一個陣列有兩個,如:char b[2] = { 0x11, 0x11 };
首先:char b[1]
不足以容納uint16_t a[1]
的兩個字節。
如果你想分配一個副本,然後memcpy的一種方法:
char b[sizeof(a)];
memcpy(b, a, sizeof(a));
如果你想別名它作爲一個char類型,你可以只投的指針:
char * b = (char *)a;
猜測中沒有什麼意義。最好等到提問者清理混淆 –
你如何想要將16位壓縮成8位? –