以下是我的摘录:
typedef struct{
uint8_t dstEndpt;
uint16_t srcEndpt;
uint8_t * quality;
} DataIndT;
DataIndT * dataIndPtr;
printf("dstEndpt: 0x%02x", dataIndPtr->dstEndpt); <-- print out the value of dstEndpt
printf("dstEndpt: 0x%04x", dataIndPtr->srcEndpt); <-- print out the value of srcEndpt
但是,如何打印出 quality
的值?
最佳答案
However, how can I print out the value of quality ?
你会
printf("%p", (void*) dataIndPtr->quality);
这将打印地址,因为指针的值是指针指向的对象的地址。
要打印指针指向的对象,在这种情况下,您可以使用适用于 C99 的格式说明符(还需要包括 inttypes.h
)。当然你还需要解引用指针:
printf("%" PRIu8 "\n", *(dataIndPtr->quality));
因为 quality
是指向 uint8_t
或
printf("%" PRIu16 "\n", *(dataIndPtr->srcEndpt));
对于 uint16_t
类型。
关于c - 打印出值 uint8_t *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937276/