0

我是 C 语言的初学者,我想知道如何将 unsigned short 存储到 char 数组中?

unit16_t 是无符号短,下面是我的代码。

uint16_t  combined = 1234;
char echoPrompt[] = {combined};

编辑:

抱歉不清楚我需要 echoPrompt 是一个字符数组,并且组合需要是一个整数。我将 echPrompt 作为 char 数组传递给需要 char 数组的 UART_write。

4

2 回答 2

2

您不能将数组传递给函数。你可以传递一个指针。指针不是数组。

如果您的 UART_write 看起来像任何标准 C/POSIX 函数writefwrite,您需要

  result = UART_write (..., 
        (char*)&combined, 
        sizeof(combined), ...);

char 数组中不需要。

于 2016-10-16T06:30:58.930 回答
1

如果我理解正确,您想在 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};
于 2016-10-16T06:35:12.257 回答