<分区>
假设我有一个struct
,它是这样定义的:
struct node {
int a;
char b;
};
如何使用指针或其他方式查找并打印每个结构成员的名称? (此处的示例输出:a
和 b
。
标签 c
<分区>
假设我有一个struct
,它是这样定义的:
struct node {
int a;
char b;
};
如何使用指针或其他方式查找并打印每个结构成员的名称? (此处的示例输出:a
和 b
。
最佳答案
成员名称在运行时是未知的,所以你不能(除非你手动指定它们)。
X Macros可以帮助:
#include <stdio.h>
#define NODE_MEMBERS \
X(int a, "a") \
X(char b, "b")
#define X(a, b) a;
struct node {
NODE_MEMBERS
};
#undef X
#define X(a, b) b,
char *node_member_name[] = {
NODE_MEMBERS
};
#undef X
int main(void)
{
printf("%s, %s\n", node_member_name[0], node_member_name[1]);
return 0;
}
关于c - 打印结构的每个成员的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33253232/