我是C语言的初学者,我想知道如何将unsigned short存储到char数组中?
unit16_t是无符号短,下面是我的代码。
uint16_t combined = 1234;
char echoPrompt[] = {combined};
编辑:
很抱歉不清楚 我需要echoPrompt成为一个char数组,并且需要组合成一个整数。我将echPrompt作为char数组传递给需要char数组的UART_write。
答案 0 :(得分:2)
您无法将数组传递给函数。你可以传递一个指针。指针不是数组。
如果您的UART_write看起来像任何标准C / POSIX函数write
,fwrite
等,则需要
result = UART_write (...,
(char*)&combined,
sizeof(combined), ...);
char数组中没有必要。
答案 1 :(得分:1)
如果我理解正确,你想在char数组中保存short的每个上下1个字节。
好吧,你为什么不使用工会?typedef struct uint16_s{
char upper;
char lower;
} uint16_s;
typedef union uint16_u{
uint16_s sBuf;
uint16_t tBuf;
} uint16_u;
uint16_u combined;
combined.tBuf = 1234;
char echoPrompt[] = {combined.sBuf.upper, combined.sBuf.lower};