wie man enum-Werte vergleichen
Ich habe eine Frage zu enum
C.
Definierte ich ein enum
in der folgenden Weise:
typedef enum
{
Hello1 = 1,
Hello2 = 2,
Hello3 = 3
}Hello
Hello hello;
int value = 3;
dann, wie vergleichen Sie den Wert mit dem Wert in Hello
?
Beispiel:
if(value == Hello3)
{
}
oder sollte ich es machen wie die folgenden:
if(value == Hello.Hello3)
{
}
- Ich merke, dass Sie schon viele Fragen wirklich grundlegende Fragen auf C in letzter Zeit hier SO - vielleicht ist es Zeit, ein anständiges einführenden Buch über C ? Du wirst eine Menge lernen schneller Weg, anstatt es zu tun iterativ über die Fragen und Antworten hier.
- Darf ich vorschlagen, en.wikipedia.org/wiki/The_C_Programming_Language, die von den Schöpfern der Sprache? Es ist nicht ein großes Buch (als C ist keine große Sprache) und die Beispiele sind durch die Arbeit Spaß macht.
- ok, ich glaube, Sie haben Recht, ich brauche zum Lesen eine c-Sprache-Buch, jedes Buch, das Sie recommoned?
- Es gibt eine sehr gute Liste der empfohlenen Bücher direkt hier: stackoverflow.com/questions/562303/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Weg ist richtig:
enum
Konstanten sind vom Typint
.Ihre zweite Konstrukt ist ungültig.
enum
ist nicht eine Struktur und die Namen sind nur Namen der entsprechendenconstants
.Diese Namen definiert
enum
sind nicht die Daten, die die Mitglieder derenum
wie instruct
(wie du denkst).Also denken Sie daran
enum
verwendet werden, um zu definieren, eine Liste mit den Namen integer-Konstanten, die wir tun können, mit#define
auch.Also hier in Ihrem Fall:
Dies ist die richtige Art und Weise zu vergleichen, wie es ersetzt
Hello3
durch den Wert3
(die aber nixint
) zur compile-Zeit.Zum Beispiel können Sie es auch tun mögen dieses: