gpt4 book ai didi

c++ - 在 C++ 中迭代结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:07 24 4
gpt4 key购买 nike

我在迭代结构时遇到了一些问题。

根据编译器标志,结构可以有不同的定义。我想将所有结构成员设置为 0。不知道有多少个成员,但保证都是数字(int, long...)

请看下面的例子:

#ifdef FLAG1
struct str{
int i1;
long l1;
doulbe d1;
};
#elsif defined (OPTION2)
struct str{
double d1
long l1;
};
#else
struct str{
int i1;
};
#endif

我想我想做的一个很好的伪代码是:

void f (str * toZero)
{
foreach member m in toZero
m=0
}

有没有办法在 C++ 中轻松做到这一点?

最佳答案

要在 C++ 中将任何 PODO 的数据初始化为零,请使用 = { 0 }。您不需要遍历每个成员。

StructFoo* instance = ...
*instance = { 0 };

关于c++ - 在 C++ 中迭代结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500855/

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