2016-10-16 6 views
0

저는 C 언어로 초보자입니다. char 배열에 unsigned short를 저장하는 방법에 대해 궁금합니다.char 배열에 부호없는 short를 저장하려면 어떻게해야합니까? C 언어

unit16_t는 부호없는 short이며, 아래 코드는 내 코드입니다.

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

편집 : 나는 echoPrompt 정수 될 수있는 문자 배열과 결합 요구를 할 필요가 불분명 인에 대한

죄송합니다. 나는 echPrompt를 문자 배열로 전달하고 있는데, UART_write는 char 배열을 필요로한다.

+0

왜 이렇게해야하는지에 대한 정보를 추가해야합니다. 짧은 대답은 왜 반바지 배열을 사용하지 않는 것입니까? – John3136

+0

John 님 안녕하세요. 위의 내용을 참조하십시오. –

+0

문제에 대해 자세히 알려주십시오. 세부 사항에 따라 최소한 두 가지 방법이 있습니다. – GMichael

답변

2

배열을 함수에 전달할 수 없습니다. 포인터를 전달할 수 있습니다. 포인터는 배열이 아닙니다. 당신의 UART_write 표준 C/POSIX 기능 write, fwrite 등의처럼 아무것도 보이는 경우

, 당신은

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

를 char 배열의 필요가 없습니다 필요합니다.

1

제대로 이해했다면 char 배열의 각 short와 lower 1byte를 저장하고 싶습니다.

음, 왜 노조를 사용하지 않으시겠습니까?

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}; 
관련 문제