programing

f() aint16_t를 인쇄하려면 어떻게 해야 합니까?

css3 2023. 11. 6. 21:59

f() aint16_t를 인쇄하려면 어떻게 해야 합니까?

aint16_t를 인쇄하려면 printf()를 사용해야 합니다.이 SO답안(unint32_t unint16_t variables value를 출력하는 방법?)은 intype.h를 사용해야 한다고 말합니다.

하지만 임베디드 시스템을 작업 중인데 intype.h는 사용할 수 없습니다.aunt16_t의 형식 지정자를 사용할 수 없을 때 aunt16_t를 인쇄하려면 어떻게 해야 합니까?

inttype.h 스타일을 사용하되 기호를 직접 정의해야 합니다.예를 들어,

#define PRIu8 "hhu"
#define PRId8 "hhd"
#define PRIx8 "hhx"
#define PRIu16 "hu"
#define PRId16 "hd"
#define PRIx16 "hx"
#define PRIu32 "u"
#define PRId32 "d"
#define PRIx32 "x"
#define PRIu64 "llu" // or possibly "lu"
#define PRId64 "lld" // or possibly "ld"
#define PRIx64 "llx" // or possibly "lx"

당신의 기계를 위해 그것들을 알아내서 사용하세요.필요한 intype.h 및 도형으로 다른 것을 살펴봅니다.

이렇게 하면 코드가 더 쉽게 이동할 수 있습니다.저는 70년대 후반부터 임베디드 시스템 작업을 해왔습니다.저를 믿으세요: 휴대성이 중요합니다.

분명한 방법은 다음과 같습니다.

printf("%u\n", (unsigned int)x);

서명되지 않은 int는 최소 16비트가 보장되므로 손실 변환이 아닙니다.

short int최소 16비트 길이이므로 값을 다음으로 변환합니다.unsigned short int인쇄합니다.%hu.

언급URL : https://stackoverflow.com/questions/29112878/how-do-i-printf-a-uint16-t