出于调试目的,我发现显示数据结构的内容很有用。
(例如,在Python中,我只执行“打印some_dict_name”)。

是否可以通过使用标准库在C语言中轻松实现这一目标,还是必须根据数据结构自己实现此目标?

考虑下面的代码,在这里我必须再次遍历StructArray才能显示其所有内容。

#include <stdio.h>

struct SomeStruct {
  int id;
  };

int main() {
  struct SomeStruct StructArray[10];
  int x = 0;

  for (x = 0; x < 10; x++) {
    StructArray[x].id = x;
  }

  for (x = 0; x < 10; x++) {
    printf("StructArray[%d].id = %d\n", x, StructArray[x].id);
  }
  return 0;
}

最佳答案

您需要自己针对每种数据类型实现它。
C没有类型系统,您不能在其中动态或静态地访问每种类型的每个部分。

如果您正在使用gdb之类的工具进行实时调试,则它的智能程度足以读取调试信息并打印类型内容。但是您不能从程序本身做到这一点,因为没有对C类型的自省。

关于c - 在C中显示数据结构内容的简便方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1800189/

10-11 18:59