Bibliothek implementieren
-
Ich grüße euch!
Ich möchte gerne eine Bibliothek implementieren mit Strukturen und Unions. Ich habe die Strukturen unten aufgelistet
typedef struct struct_cmpl_kart{ double re; double im; } complex_kart; typedef struct struct_cmpl_polar{ double betrag; double phase; } complex_polar; typedef union uni_val{ complex_kart kart_value; complex_polar polar_value; double scalar_value; } value;
Ich möchte gerne eine Bibliothek implementieren die folgenden Funktionalitäten enthält:
- Addition, Subtraktion, Multiplikation, Division von "values"
- Addition, Multiplikation von "value-Vektoren"
- Addition, Multiplikation, Transposition, Invertierung von "value-Matrizen"Kann ich da universelle Funktionen bauen die erkennen was Kartesisch ist oder Polar und Skalar??
Hat Ihr da Tipps für mich??
-
Hi,
vielleicht geht es ja damit:
typedef enum {cart, polar, scalar} complex_type; typedef struct { complex_type type; union { complex_kart kart_value; complex_polar polar_value; double scalar_value; } val; } value; /* Benutze value dann z.B. so: */ value a; switch (a.type) { case cart: a.val.kart_value.re = 10.; break; case polar: a.val.polar_value.phase = 20.; break; case scalar: a.val.scalar_value = 10.; break; default: /* error handling */ break; }
Ich hoffe, ich konnte dir hiermit weiterhelfen.
Mit diesem Ansatz speicherst du dir im Objekt selbst, welchen Typ
es beinhaltet.Gruß mcr
EDIT: Fehler im Code beseitigt.