在C中显示数据结构内容的简便方法?

zla*_*ack 2 c data-structures

出于调试目的,我发现显示数据结构的内容很有用.(例如,在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;
}
Run Code Online (Sandbox Code Playgroud)

Ark*_*nez 8

您需要根据数据类型自行实现它.
C没有类型系统,您可以动态或静态地访问每种类型的每个部分.

如果您正在使用像gdb这样的东西进行实时调试,它的智能足以读取调试信息和打印类型内容.但是你不能从程序本身那里做到这一点,没有对C类型进行内省的事情.