首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用C++打印结构字段和值

用C++打印结构字段和值
EN

Stack Overflow用户
提问于 2016-12-24 00:03:01
回答 6查看 120.9K关注 0票数 32

我对打印结构字段很感兴趣。

代码语言:javascript
复制
Typedef struct
{
   UINT32 thread_id;
   BOOL   is_valid;
}T_THREAD;

在"C“语言中有没有一种打印结构内容的方法,比如

例如:print (T_THREAD)和输出应如下所示

代码语言:javascript
复制
Contents of a structure T_THREAD are 
  thread_id
  is_valid
EN

回答 6

Stack Overflow用户

发布于 2016-12-24 00:10:58

你要找的是反射。Java和其他虚拟语言都有反射,因此您可以打印出任何给定类的变量名和函数名。因为编译器会自动构建这些反射函数。

C没有反射。您必须手动完成所有操作。

票数 29
EN

Stack Overflow用户

发布于 2016-12-24 00:11:09

至于你的结构,这个函数看起来像这样..

代码语言:javascript
复制
// 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);
}
票数 8
EN

Stack Overflow用户

发布于 2016-12-24 00:05:43

不,没有标准的/预定义的方法来实现您想要的结果。

可以,但是,您可以编写自己的函数,该函数具有要打印的特定结构元素值的知识,然后,通过使用结构变量的特定实例对该函数进行一次调用,您可以获得打印的所有成员的所有值。就像这样

代码语言:javascript
复制
T_THREAD var;

my_print(var);  //my_print() is the function you'll roll out

应该能够打印值。

但是,请注意,此值不允许您以任何方式打印变量名,只能打印“”。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41304497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档