c - 打印出值 uint8_t *

标签 c

以下是我的摘录:

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/

相关文章:

c - 为什么这会给我一个段错误?

c - Openssl crypto lib中有一个函数可以安全地输入密码吗?

c - 尝试替换从管道读入的 char * 中的所有 char 实例

c++ - u_int32_t 与 bpf_u_int32

c - 数组搜索只需创建一个指针即可

c - C语言中如何在10个字符后插入新行?

c - 进程退出并返回值 255,带有指向结构的指针

c - Objective-C 结构的默认值以及如何测试

c - else 如何解释其后面的 if 语句?

无法打开包含文件 : 'arpa/inet.h' :