我对打印结构字段很感兴趣。
Typedef struct
{
UINT32 thread_id;
BOOL is_valid;
}T_THREAD;在"C“语言中有没有一种打印结构内容的方法,比如
例如:print (T_THREAD)和输出应如下所示
Contents of a structure T_THREAD are
thread_id
is_valid发布于 2016-12-24 00:10:58
你要找的是反射。Java和其他虚拟语言都有反射,因此您可以打印出任何给定类的变量名和函数名。因为编译器会自动构建这些反射函数。
C没有反射。您必须手动完成所有操作。
发布于 2016-12-24 00:11:09
至于你的结构,这个函数看起来像这样..
// st_name is the name of the struct
void print(T_THREAD *st, const char *st_name)
{
printf("Contents of structure %s are %lu, %d\n", st_name, st->thread_id, st->is_valid);
}发布于 2016-12-24 00:05:43
不,没有标准的/预定义的方法来实现您想要的结果。
可以,但是,您可以编写自己的函数,该函数具有要打印的特定结构元素值的知识,然后,通过使用结构变量的特定实例对该函数进行一次调用,您可以获得打印的所有成员的所有值。就像这样
T_THREAD var;
my_print(var); //my_print() is the function you'll roll out应该能够打印值。
但是,请注意,此值不允许您以任何方式打印变量名,只能打印“”。
https://stackoverflow.com/questions/41304497
复制相似问题