我在C中有一个问题。我的结构的定义是这样的。
struct c1
{
int a ;
int b ;
#ifdef _UNION_DEFINED
union {
#endif
float c;
float d;
#ifdef _UNION_DEFINED
};
#endif
};
如果启用了标志_UNION_DEFINED,则上述结构将启用联合。但我希望在运行时动态地实现相同的功能。就像函数返回true一样,应该启用union,否则不应该定义union。任何人都可以告诉我,这是否可以实现。
谢谢, d
答案 0 :(得分:2)
不,这是无法实现的。 C通常是一种静态的编译语言。这意味着当程序运行时,没有剩下的元信息(如类型信息),所有都是原始机器代码。
您可以定义两种结构,然后在运行时根据需要选择合适的结构。