2017-05-23 26 views
1

次のようにCで列挙体を定義しようとしています。私はエラー**不正なストレージクラス**を取得します。エラーC2071不正なストレージクラス、Cのdefinig列挙型

typedef struct 
{ 
    typedef enum 
    { 
    Gerade, 
    Gerade_penta, 
    Gerade_3D, 
    Koppler, 
    Krumm, 
    Schraeg, 
    SForm, 
    SForm2, 
    SForm2_3D, 
    Tapered  
    } wg_type; 

    double start; double end; 
    double xsk; double xek; 
    double xsk2; double xek2; 
    ... 
} My_Struct; 

私は以下の方法も試みました。それでも同じ問題です。 thisに基づいています。

enum wg_type {...}; 

私に何かが不足していますか?誰も私が問題を解決するのを助けることができますか?

+1

structのようなtypedefは使用できません。構造体からenumを移動してください –

+0

2番目の方法はどうですか?どこが列挙型なのですか? – dieKoderin

答えて

3

これを試してみてください:

typedef enum 
{ 
    Gerade, 
    Gerade_penta, 
    Gerade_3D, 
    Koppler, 
    Krumm, 
    Schraeg, 
    SForm, 
    SForm2, 
    SForm2_3D, 
    Tapered  
} My_Enum; 

typedef struct 
{ 
    My_Enum my_enum; 

    double start; double end; 
    double xsk; double xek; 
    double xsk2; double xek2; 
    ... 
} My_Struct; 

あなたできこのような構造体で列挙型を宣言:

struct My_Struct 
{ 
    enum {X, Y, Z} my_enum; 
    ... 
}; 

構造体でそれを宣言するため、通常、あなたが、しかし構造体の外にそれをしたいです違いは無くなり、読みにくくなります。

+0

それは問題を解決しました。しかし、一般的には、** enum **を** struct **に定義することはできませんか? – dieKoderin

+0

@Maryは私の編集を参照してください –

関連する問題