我有一个 C 语言的问题。我有一个定义如下的结构体。
struct c1
{
int a ;
int b ;
#ifdef _UNION_DEFINED
union {
#endif
float c;
float d;
#ifdef _UNION_DEFINED
};
#endif
};
如果启用标志 _UNION_DEFINED,上述结构将启用 union 。但我想在运行时动态地实现同样的事情。就像如果函数返回 true,则应该启用 union ,否则不应定义 union 。谁能告诉我这是否可以实现。
谢谢,
最佳答案
不,那是做不到的。 C 是一种典型的静态编译语言。这意味着当程序运行时,没有留下任何元信息(如类型信息),只有原始机器代码。
您或许可以同时定义这两种结构,然后在运行时根据需要选择合适的结构。
关于在c中动态更改结构属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033361/