Hallo, ich bin kein Profi in C, habe daher eine Frage:
In einer C Datei kann ich Variablen vom Typ __Vector definieren, z.B.:
1 | __Vector V1, V2, V3 /*Definiere 3 Variablen vom Type __Vector in .c Datei*/
|
Den Datentyp __Vector habe ich in eine Header Datei als ein typedef
struct definiert der aus Funktionspointer besteht, z.B:
1 | typedef struct s__vector { //Der Typ __Vector ist in Header void (*func1)(void); //folgendermassen definiert:
|
2 | void(*func2)(float);
|
3 | void(*func3)(int);
|
4 | void(*func4)(void);
|
5 | } __Vector
|
Wenn ich jetzt beispielsweise in der C Datei einer definierten Variable
vom Typ __Vector die Summe zweier Variablen vom gleichen Type __Vector
zuweisen möchte, beispielsweise:
1 | V1 = V2 + V3 //(alle Variablen sind vom Typ __Vector)
|
meckert der Compiler das die Zuweisungsoperatoren ("=" und "+") nicht
kompatibel zu der struct definition sind. Das ist auch Logisch.
Die Frage ist jetzt, wie bringe ich dem Compiler bei, das auf dem Typ
__Vector die Operanden "+" und "=" ausgeführt werden können.
Ich hätte eine Ahngung wie ich das in C++ mit Hilfe des Schlüsselworts
"operator" (also überladene operatoren) realisieren könnte. Habt Ihr
einen Vorschlag wie man das in C machen könnte?
Ich hoffe auf eure Hilfe!
Vielen Dank im Vorraus!