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

上記のすべての構造体変数を 1 つずつ初期化するのではなく、1 行で初期化する方法はありますか?

4

2 に答える 2

2

C++ の場合、空のコンストラクターは、単純な数値型のすべてのメンバー変数を自動的にゼロで初期化します。

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

C との互換性を念頭に置いて、暗黙のデフォルト コンストラクターがこれを行うかどうかについてはよくわかりません。おそらく、誰かがC++標準を手元に持っている(またはそれを暗記している)場合は、この回答を拡張してください。

于 2012-06-19T08:40:04.327 に答える
1

使用memset:

LoadsForADPLScript instance;
memset(&instance, 0, sizeof(LoadsForADPScript));
于 2012-06-19T07:42:46.783 に答える