gpt4 book ai didi

c - 动态结构声明

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:37 24 4
gpt4 key购买 nike

我的项目中有一些代码片段使用了结构 z。此结构声明根据我的系统中设置的条件标志而更改。我希望结构声明是动态的。

如果条件标志为0则

struct x z;

如果条件标志为 1,则

struct y z;

但对 z 执行的操作是相同的。目前这是通过声明结构来处理的:

struct x z_x;
struct y z_y;

然后根据条件标志在代码中使用适当的结构。这种方法似乎不是最优的。关于处理此类代码的任何建议?

最佳答案

您还可以使用#ifdefs 来创建结构:

typedef struct
{
#ifdef MY_FLAG
int s;
#else
float s;
#endif
} z;

你也可以使用 union,该结构将同时具有两个字段,你将使用你需要的那个。

union {
int i;
float f;
} z;

z.i = 1;z.f = 1.0;

这样您一次应该只使用一个成员。

关于c - 动态结构声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com