Dies ist ein grundlegender Ansatz, um eine generische Vektor-/Listenbibliothek in reiner C zu erstellen. Sie bemerkten jedoch, dass 'Pure C' meinen Dateierweiterungen widersprach, und ja, es gibt ein Problem, aber es handelt sich um ein Verlassen des Compilers.
In GCC verfügt bereits über einen TypeOF -Spezifizierer, sodass Sie *.c -Dateien ohne Probleme erstellen können.
Wo es nicht mit MSVC -Compiler funktioniert. MSVC verfügt nicht über einen Typ -OF -Spezifizierer, bei dem mein Implementierung von einem Typ -Spezifizierer abhängt und DecctType nicht wie ich erwartete. Also finde ich static_cas <delcType (x)> als Lösung.
Typedef Struct
{
int Größe;
int Kapazität;
YourDatatype * Daten;
} Mydatavector;
Alles, was Sie benötigen, um Ihre Vektordatenstruktur zu schreiben. Nachdem Sie alle Vektorfunktionen einfach in Ihrem eigenen definierten Datentyp verwenden können
Ex: Struct foo {..} typedef foo foo; // Hier müssen wir unsere Struktur als einen neuen Typ definieren, um VectorMaker korrekt auszuführen ...
CVectorCreateType (Foo, MyFoovector);
Myfoovector myVec = vectorcreate (myVec); Oder myfoovector myvec; Vectorinit (myvec);
... Dann
YourDatatype Element; / * einige prozess / vectorAppend (vec, element) / ein prozess * / vectorsort (vec, yourDatatypeComparator);