How do I printf() a uint16_t?

后端 未结 3 1668
天涯浪人
天涯浪人 2021-02-05 06:27

I need to use printf() to print a uint16_t. This SO answer (How to print uint32_t and uint16_t variables value?) says I need to use inttypes.h.

However, I\'m working on

3条回答
  •  情深已故
    2021-02-05 06:38

    You should use the style of inttypes.h but define the symbols yourself. For example:

    #define PRIu8 "hu"
    #define PRId8 "hd"
    #define PRIx8 "hx"
    #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"
    

    Figure them out for your machine and use them. Take a look at others in inttypes.h and figure which you will need.

    This way, your code will be more portable. I've been doing embedded systems work since the late 70's. Trust me: portability is important.

提交回复
热议问题