我们如何在不知道结构体名称的情况下访问它的成员?
例如:这是我的结构。
struct A
{
int a;
char b;
int c;
}
现在我想访问结构体 A 的 char 成员而不使用它的名称。
我只有一个指向该结构的指针。
示例:struct A *temp;
现在我需要使用“temp”进行访问。
我知道这个问题与此类似How would you access a C structure's members without knowing the name? , 但这并没有澄清我的疑问。
最佳答案
从评论中,我了解到您有以下功能
struct A;
void foo( struct A * temp )
{
// access temp->b here
}
如果您可以包含具有结构 A 定义的文件,请这样做
#include "A.h"
void foo( struct A * temp )
{
do_something_with_b(temp->b);
}
如果您无法包含该文件,请执行 Luc Forget 在其回答中建议的操作:
声明 struct B
具有相同的结构,并类型转换temp
至struct B
。因为struct B
具有与 struct A
相同的内存布局,访问((struct B*)temp)->e
与访问 A->b
相同.
关于c++ - 如何在不知道名称的情况下访问结构体成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31648904/