如何将unsigned short存储到char数组中? C语言

时间:2016-10-16 06:13:55

标签: c arm code-composer

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

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

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

编辑:

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

2 个答案:

答案 0 :(得分:2)

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

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

  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};