0

構造付き:

struct element_data
{
    int size;
    int type;
    int nID;
    int attribute;
    double fValue;
    int mode;
    bool bTemp;
};

...すべてのメンバーを手動でゼロで初期化する必要があります:

inline element_data() : //Empty constructor
    size(0),
    type(0),
    nID(0),
    attribute(0),
    fValue(0),
    mode(0),
    bTemp(false)
{}

コマンドが多すぎると、電卓の速度が低下する可能性があります。これを行うことができる他の方法はありますか?たとえば、単一のコマンドでは、すべての値がゼロ値を取ります。

4

2 に答える 2

1

いいえ、ありません。少なくとも、効率が懸念事項である場合。

これが理由です

上記のリンクから、「他のすべての条件が同じであれば、割り当てではなく初期化リストを使用すると、コードの実行速度が速くなります」と引用しています。

コードが多いからといって、効率が悪いわけではないことを忘れないでください。実際、最適化されたコードは通常、最適化されていない汎用コードよりも大きく複雑に見える傾向があります。これは通常、処理しているデータのプロパティまたは使用しているアルゴリズムに基づいてショートカットを使用しているためです。

このアプローチの利点は、インスタンスを作成するコードに依存せずに、メンバーをゼロに正しく初期化すると同時に、効率も向上することです。初期化子リストは、構造体メンバーが常に正しく初期化されることを保証します。

于 2013-02-07T02:08:45.637 に答える
0

struct element_dataはPODであるため、次の2つの方法でメンバーをデフォルト値に初期化できます。

element_data ed = element_data();

また

element_data ed = {};

すべての整数メンバーはに初期化され0、boolはに初期化されfalseます。

于 2013-02-07T02:13:23.253 に答える