一次初始化所有结构变量

时间:2012-06-19 06:39:47

标签: c++

struct LoadsForAPDLScript
{
    double JntLCLoad;
    double JntPPLoad;
    double JntLimManLoad;
    double JntLimShockLoad;
    double JntOthLimTenLoad;
    double JntOthLimManLoad;
    double JntBPLoad;
    double JntUltManLoad;
    double JntUltShockLoad;
    double JntOthUltTenLoad;
    double JntOthUltManLoad;
};

有没有办法在一行中初始化上面提到的所有struct变量而不是逐个初始化它?

2 个答案:

答案 0 :(得分:2)

如果它是C ++,空构造函数将自动初始化零的简单数字类型的所有成员变量。

struct LoadsForAPDLScript {
    ...
    LoadsForAPDLScript() {}
};

考虑到C兼容性,我不太确定隐式默认构造函数是否也会这样做。也许有人手头有C ++标准(或者心里明白),那么请扩展这个答案。

答案 1 :(得分:1)

使用memset

LoadsForADPLScript instance;
memset(&instance, 0, sizeof(LoadsForADPScript));