enum



  • Wie deklariert man am besten enums?
    Ich habe enum auf zwei Arten dekariert, beide Möglichkeiten fürhren zum gewünschtem Ergebnis, aber ist das auch das selbe?
    Wo liegen aber da die Unterschiede?

    Das selbe ist ja mit struct mölich.
    Vielen Dank im Voraus.

    #include <stdio.h>
    
    //typedef enum
    //{
    //    SEHR_GUT,
    //    GUT,
    //    BEFRIEIGEND,
    //    AUSRECHEND,
    //    MANGELHAFT,
    //    UNGENUEGEND,
    //} NOTEN;
    
    //NOTEN var = 2;
    
    enum NOTEN
    {
        SEHR_GUT,
        GUT,
        BEFRIEIGEND,
        AUSRECHEND,
        MANGELHAFT,
        UNGENUEGEND,
    };
    enum NOTEN var = 0;
    
    int main (void)
    {
    
    	switch(var)
    	{
    	case SEHR_GUT:
    		puts("\nSEHR_GUT");
    		break;
    	case GUT:
    		puts("\nGUT");
    		break;
    	case BEFRIEIGEND:
    		puts("\nBEFRIEIGEND");
    		break;
    	case AUSRECHEND:
    		puts("\nAUSRECHEND");
    		break;
    	default:
    		puts("\nFEHLER");
    	}
    	return 0;
    }
    

    Jetzt will ich mit Hilfe von struct diverse enums zusamenfassen.
    MIT dem Pointer *port will ich enum NOTEN einen Wert zuweisen und in der switch auf diesen Wert abfragen.
    Wie geht das am besten.

    #include <stdio.h>
    
    typedef enum
    {
        SEHR_GUT,
        GUT,
        BEFRIEIGEND,
        AUSRECHEND,
        MANGELHAFT,
        UNGENUEGEND,
    } NOTEN;
    
    struct port_struct {
    
        NOTEN receive_state;
        unsigned char receive;
    };
    
    extern struct port_struct *port;
    
    int main (void)
    {
    
    	switch(port->receive_state)
    	{
    	case SEHR_GUT:
    		puts("\nSEHR_GUT");
    		break;
    	case GUT:
    		puts("\nGUT");
    		break;
    	case BEFRIEIGEND:
    		puts("\nBEFRIEIGEND");
    		break;
    	case AUSRECHEND:
    		puts("\nAUSRECHEND");
    		break;
    	default:
    		puts("\nFEHLER");
    	}
    	return 0;
    }
    


  • [browserproblem, sorry.]


Anmelden zum Antworten