enum (Aufzählungstyp) in C-Sprache

Eine Aufzählung besteht darin, alle möglichen Werte einer Sache einzeln aufzulisten

Es gibt nur wenige mögliche Werte für eine Variable. Beispielsweise hat der Wochentag nur Montag, Dienstag, dritten, vierten, fünften und sechsten Tag.

Definieren Sie einen Aufzählungstyp und dann eine Variable dieses Typsw:

#include <stdio.h>
enum WeekDay {
    
    sun,mon,tues,wed,thur,fri,sat};
int main(void)
{
    
    
	enum WeekDay w;
	return 0;
}

Einige Eigenschaften von Aufzählungen:

  1. Nehmen Sie den Wochentag als Beispiel. Im folgenden Code konvertiert der Compiler sun, mon, tues, Die Werte von a>wed, thur, fri und sat Standardmäßig 0, 1 und 2 in der Reihenfolge. ,3,4,5,6:

    #include <stdio.h>
    enum WeekDay {
          
          sun,mon,tues,wed,thur,fri,sat};
    int main(void)
    {
          
          
    	enum WeekDay w;
        w = mon;
        printf("w = %d\n",w);//输出结果:w = 1
    	return 0;
    }
    

    Es ist erwähnenswert, dass beim Zuweisen eines anderen Werts als des w-Enumerationselements (z. B. w = 'a' oder w = 10; usw.) der Compiler nicht Es wird kein Fehler gemeldet (ich verwende den gcc-Compiler) und der Wert von w kann normal ausgegeben werden.

  2. Die Standardwerte von Aufzählungselementen können geändert werden:

    #include <stdio.h>
    enum WeekDay {
          
          sun=7, mon,tues,wed,thur,fri,sat};
    int main(void)
    {
          
          
    	enum WeekDay w;
        w = sun;
        printf("w = %d\n",w);//输出结果:w = 7
    	return 0;
    }
    

    Der obige Code ändert den Standardwert des Aufzählungselementssun auf 7, dann und < nach sun Der Wert von /span> Die Standardwerte werden ebenfalls 8, 9, 10, 11 und 12, , , , montueswedthurfrisat

  3. Wenn Sie nur den Standardwert eines der Aufzählungselemente in der Mitte ändern:

    #include <stdio.h>
    enum WeekDay {
          
          sun, mon,tues,wed=13, thur,fri,sat};
    int main(void)
    {
          
          
    	enum WeekDay w;
        w = sun;
        printf("w = %d\n",w);//输出结果:w = 0
        w = thur;
        printf("w = %d\n",w);//输出结果:w = 14
    	return 0;
    }
    
  4. Zweienum Typen können keine doppelten Aufzählungselemente haben:

    #include <stdio.h>
    enum WeekDay1{
          
          sun,mon,tues,wed};
    enum WeekDay2{
          
          wed,thur,fri,sat};
    int main(void)
    {
          
          
        enum WeekDay1 w1;
        enum WeekDay2 w2;
        w1 = mon;
        w2 = sat;
    	return 0;
    }
    

    Der obige Code meldet einen Fehler:error: redeclaration of enumerator 'wed'

  5. Am Beispiel des Wochentags können Sie bei der Definition auch Variablen wie eine Struktur oder Union direkt definieren (dies wird jedoch im Allgemeinen nicht empfohlen):

    #include <stdio.h>
    enum WeekDay {
          
          sun,mon,tues,wed,thur,fri,sat}w1,w2;
    int main(void)
    {
          
          
        w1 = mon;
        w2 = sun;
    	return 0;
    }
    

    Wenn Sie die Variable direkt wie im obigen Code definieren, kann der Name nach der Aufzählung ignoriert werden (dies wird im Allgemeinen nicht empfohlen):

    #include <stdio.h>
    enum {
          
          sun,mon,tues,wed,thur,fri,sat}w1,w2;
    int main(void)
    {
          
          
        w1 = mon;
        w2 = sun;
    	return 0;
    }
    

Guess you like

Origin blog.csdn.net/YuanApple/article/details/131789261