構造体をユニオンで初期化する方法は?

user10926577

和集合を含む構造体を適切に初期化するにはどうすればよいですか?現在、エラーが発生します// error C2440: 'initializing': cannot convert from 'float' to 'const char *'

#include <stdio.h>

using namespace std;

typedef enum {STRING, REAL, POINTER } Type;

const struct Entry {
    union {
        const char *string;
        float real;
        void *pointer;
    };
    Type type;
    LPCSTR Key;
    LPCSTR Name;
}f;

const Entry Entries[] = {
    {{0.5f}, REAL, "Key", "Name" } // error C2440: 'initializing': cannot convert from 'float' to 'const char *'
};

int main(int argc, char **argv)
{
    for (int i = 0; i < size(Entries); i++)
    {
        switch Entries[i].type
        {
            case STRING:
                printf("Type string; Value: %s\n", Entries[i].string);
            case REAL:
                printf("Type string; Value: %d\n", Entries[i].real);
        }
    }
}
一部のプログラマーの男

ユニオンを初期化すると、最初のメンバーのみが初期化されます。ユニオンfloat realの最初のメンバーになるようにユニオンを再配置します。

もちろん、それは直接初期化で他のメンバーを使用できないことを意味します。

他の解決策は、のための1つのように、労働組合にコンストラクタを追加することであるrealための部材で、1stringの部材とのための1つのpointerメンバー。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ユニオンによる構造体の初期化を返す

分類Dev

ユニオンを含むc構造体の初期化

分類Dev

別の構造体で構造体の配列を初期化する方法は?

分類Dev

ユニオンを持つ構造体の配列の要素を初期化する際の問題

分類Dev

C ++で構造体内の共用体の構造体メンバーを初期化する方法は?

分類Dev

cythonで構造体をNULLに初期化する方法は?

分類Dev

PLC-ST: 宣言で構造体を初期化する方法は?

分類Dev

Swift-構造体で配列を初期化する方法は?

分類Dev

Go構造体でメンバーを初期化する方法

分類Dev

NULLで構造体ポインタ変数を初期化する方法は?

分類Dev

golangで次の構造の構造体を初期化する方法

分類Dev

mallocで構造体を初期化する

分類Dev

ユニオンを使用するC構造体へのGoバインディングをモデル化する方法は?

分類Dev

CでConst構造体を初期化する方法-QAC警告を回避するには

分類Dev

構造体で構造体を初期化する

分類Dev

ユニオンまたは構造体は、初期化されていないインスタンスからの割り当てを許可しますか?

分類Dev

C ++で構造体をCの方法で初期化する

分類Dev

構造体ポインタと指定された初期化を使用してC構造体を初期化する方法

分類Dev

入れ子になった構造体をgoで初期化する方法は?

分類Dev

golangでネストされた構造体を初期化する方法は?

分類Dev

ネストされた構造体を初期化する方法は?

分類Dev

この構造体を集約して初期化する方法は?

分類Dev

構造体をnullに初期化する方法は?

分類Dev

空の構造体を初期化する方法は?

分類Dev

collectionViewセルの構造体を初期化する方法は?

分類Dev

MASMアセンブリでローカル構造体を初期化する方法

分類Dev

構造体からvoid *ポインタを初期化する方法

分類Dev

JNA構造でユニオンをマップする方法

分類Dev

c ++で構造体のベクトルを初期化する方法

Related 関連記事

  1. 1

    ユニオンによる構造体の初期化を返す

  2. 2

    ユニオンを含むc構造体の初期化

  3. 3

    別の構造体で構造体の配列を初期化する方法は?

  4. 4

    ユニオンを持つ構造体の配列の要素を初期化する際の問題

  5. 5

    C ++で構造体内の共用体の構造体メンバーを初期化する方法は?

  6. 6

    cythonで構造体をNULLに初期化する方法は?

  7. 7

    PLC-ST: 宣言で構造体を初期化する方法は?

  8. 8

    Swift-構造体で配列を初期化する方法は?

  9. 9

    Go構造体でメンバーを初期化する方法

  10. 10

    NULLで構造体ポインタ変数を初期化する方法は?

  11. 11

    golangで次の構造の構造体を初期化する方法

  12. 12

    mallocで構造体を初期化する

  13. 13

    ユニオンを使用するC構造体へのGoバインディングをモデル化する方法は?

  14. 14

    CでConst構造体を初期化する方法-QAC警告を回避するには

  15. 15

    構造体で構造体を初期化する

  16. 16

    ユニオンまたは構造体は、初期化されていないインスタンスからの割り当てを許可しますか?

  17. 17

    C ++で構造体をCの方法で初期化する

  18. 18

    構造体ポインタと指定された初期化を使用してC構造体を初期化する方法

  19. 19

    入れ子になった構造体をgoで初期化する方法は?

  20. 20

    golangでネストされた構造体を初期化する方法は?

  21. 21

    ネストされた構造体を初期化する方法は?

  22. 22

    この構造体を集約して初期化する方法は?

  23. 23

    構造体をnullに初期化する方法は?

  24. 24

    空の構造体を初期化する方法は?

  25. 25

    collectionViewセルの構造体を初期化する方法は?

  26. 26

    MASMアセンブリでローカル構造体を初期化する方法

  27. 27

    構造体からvoid *ポインタを初期化する方法

  28. 28

    JNA構造でユニオンをマップする方法

  29. 29

    c ++で構造体のベクトルを初期化する方法

ホットタグ

アーカイブ