Ich glaube nicht, dass ich grundsätzlich verstehe, was ein enum
ist, und wann sie zu verwenden ist.
Zum Beispiel:
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
Was wird hier wirklich erklärt?
Ich glaube nicht, dass ich grundsätzlich verstehe, was ein enum
ist, und wann sie zu verwenden ist.
Zum Beispiel:
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
Was wird hier wirklich erklärt?
Der Typedef ist ein Schlüsselwort in C und C++. Es wird verwendet, um neue Namen für grundlegende Datentypen zu erstellen (char, int, float, double, struct & enum) .
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
Hier wird ein enumerierter Datentyp erstellt ShapeType & wir können neue Namen für Enum-Typen schreiben ShapeType wie unten angegeben
ShapeType shape1;
ShapeType shape2;
ShapeType shape3;
Enum kann viele Arten von "Fehlern" reduzieren und den Code überschaubarer machen
#define STATE_GOOD 0
#define STATE_BAD 1
#define STATE_OTHER 2
int STATE = STATE_OTHER
Die Definition hat keine Beschränkungen. Sie ist einfach nur eine Substitution. Sie ist nicht in der Lage, alle Bedingungen des Zustands einzuschränken. Wenn STATE = 5 zugewiesen wird, ist das Programm falsch, weil es keinen passenden Zustand gibt. Aber der Compiler wird nicht vor STATE = 5 warnen.
Es ist also besser, wie folgt zu verfahren
typedef enum SampleState {
SampleStateGood = 0,
SampleStateBad,
SampleStateOther
} SampleState;
SampleState state = SampleStateGood;
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Wird der benutzerdefinierte Typ "enum" genannt? Das hatte ich auch gedacht, bis ich auf Code stieß, der mehrere typedef enum-Deklarationen enthielt.
8 Stimmen
Nein, der benutzerdefinierte Typ ist ShapeType. Informieren Sie sich über typedef : de.wikipedia.org/wiki/Typedef
7 Stimmen
Ein typedef in Objective-C ist genau dasselbe wie ein typedef in C. Und ein enum in Objective-C ist genau dasselbe wie ein enum in C. Dies deklariert ein enum mit drei Konstanten kCircle = 0, kRectangle = 1 und kOblateSpheroid = 2 und gibt dem enum-Typ den Namen ShapeType. Wenn Sie nicht wissen, was "typedef" und "enum" bedeuten, kaufen Sie sich ein Buch über C.