我是 C 语言的初学者,我想知道如何将 unsigned short 存储到 char 数组中?
unit16_t 是无符号短,下面是我的代码。
uint16_t combined = 1234;
char echoPrompt[] = {combined};
编辑:
抱歉不清楚我需要 echoPrompt 是一个字符数组,并且组合需要是一个整数。我将 echPrompt 作为 char 数组传递给需要 char 数组的 UART_write。
我是 C 语言的初学者,我想知道如何将 unsigned short 存储到 char 数组中?
unit16_t 是无符号短,下面是我的代码。
uint16_t combined = 1234;
char echoPrompt[] = {combined};
编辑:
抱歉不清楚我需要 echoPrompt 是一个字符数组,并且组合需要是一个整数。我将 echPrompt 作为 char 数组传递给需要 char 数组的 UART_write。
您不能将数组传递给函数。你可以传递一个指针。指针不是数组。
如果您的 UART_write 看起来像任何标准 C/POSIX 函数write
等fwrite
,您需要
result = UART_write (...,
(char*)&combined,
sizeof(combined), ...);
char 数组中不需要。
如果我理解正确,您想在 char 数组中保存每个高低 1 字节的 short 。
好吧,你为什么不直接使用联合?
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};