Pointer in struct auf enum array; wie?



  • Moin Ihr lieben Wissenden!
    Ich habe ein Stück code bei dem aber leider ein include fehlt sodass ich eine structur definition aus den vorhandenen datentypen ermitteln will. Es ist nur ein Beispiel und soll mir etwas über den internen Aufbau des Codes vermitteln ( hoffentlich 😃 )
    Gesucht ist also in der struktur strSpec die korrekte Typedefinition die mit dem #define NOUSE und dem array von enum enUnits zurecht kommt ( Zeile 12 ). Eigentlich hätte ich auf

    enum enUnits *foo
    

    getippt. Das findet der Compiler aber unschön. Wäre echt toll, wenn Ihr mir da auf die Sprünge helfen könntet 🙂
    In Zeile 18 wird ein arry von enum mit type enUnits definiert und initialisiert. Ab Zeile 20 werden dann verschiedene structs erzeugt und initialisiert. Zu sehen ist, dass im original Code in Zeile 20 das Array "alt" als zweiter Parameter definiert wird. In den folgenden Zeilen wird dafür jedoch das #define NUSE benutzt.

    enum enUnits	{
      U_NONE,
      U_VOLT,
      U_WATT,
      U_GRAM,
      U_END
    };
    
    struct strSpec	{
    
    	enum enUnits unit;
    	// HIER die typendeklaration für #define NUSE und alt[] 
    	int exp;
    };
    
    #define NUSE ((enum enUnits *)0)
    
    const enum enUnits alt[] = {U_VOLT, U_WATT, U_END};
    
    const struct strSpec myVolt = {U_VOLT, alt, -3};
    const struct strSpec myAmp = {U_WATT, NUSE, 0};
    const struct strSpec myGram = {U_GRAM, NUSE, 0};
    ..
    

    Beste Grüße
    Karsten


  • Mod

    const enum enUnits *



  • Moin Sepp]
    Cool, wie schnell das alles so geht 😃

    Arrrrrghhhhh! Ich habe das const übersehen!

    Schwerste untertänigste Verbeugung 😃

    100000000 * 10^12 Daaaangäää!

    Karsten


Anmelden zum Antworten