gpt4 book ai didi

c - 在 C 中打印一个结构

转载 作者:太空狗 更新时间:2023-10-29 16:28:40 25 4
gpt4 key购买 nike

我正在尝试打印作为函数参数出现的 struct 以进行一些调试。

有没有办法在不知道结构内容的情况下打印结构的内容,即不显式打印每个字段?你看,根据不同 #define 的负载,结构可能看起来非常不同,即可能有或没有不同的字段,所以我想找到一种简单的方法来做类似 print_structure(my_structure).

NetBeans 的调试器可以为我做到这一点,但不幸的是代码在我无法运行调试器的设备上运行。

有什么想法吗?我想这是不可能的,但至少在编译时可能有一些宏可以做到这一点?

谢谢!

最佳答案

您始终可以对结构进行十六进制转储:

#define PRINT_OPAQUE_STRUCT(p)  print_mem((p), sizeof(*(p)))

void print_mem(void const *vp, size_t n)
{
unsigned char const *p = vp;
for (size_t i=0; i<n; i++)
printf("%02x\n", p[i]);
putchar('\n');
};

关于c - 在 C 中打印一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com