2016-10-16 43 views
0

我是C語言的初學者,我想知道如何將未簽名的short存儲到char數組中?如何將未簽名的short存儲到char數組中? C語言

unit16_t是無符號短小,下面是我的代碼。

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

編輯:

對不起爲是 不清楚我需要echoPrompt是一個字符數組和組合需要是一個整數。我將echPrompt作爲char數組傳遞給需要char數組的UART_write。

+0

您需要添加更多關於您爲什麼需要這樣做的信息。簡短的答案是爲什麼不使用一組短褲? – John3136

+0

嗨,約翰,請看上面 –

+0

請給出更多關於這個問題的細節。根據具體情況,至少有兩種不同的方法。 – GMichael

回答

2

您無法將數組傳遞給函數。你可以傳遞一個指針。指針不是數組。

如果您UART_write看起來類似的東西任何標準的C/POSIX功能writefwrite等,則需要

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

還有就是在字符數組沒有必要。

1

如果我理解正確的話,你希望在char數組中保存每一個較短和較低的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}; 
相關問題