java.util Sachen in C
-
Hi,
Ich bin normalerweise in der Java Welt zuhause, aus Performancegründen muss ich aber für diverse Sachen jetzt doch auf C zurückgreifen.
Auf Empfehlung vieler hab ich mir das k&r buch durchgelesen.
Dennoch fehlen mir um "brauchbare" Programme zu schreiben div. Libraries, die in Java z.b. schon im "Lieferumfang" enthalten sind, wie z.B. LinkedLists, HashMaps Sortierfunktionen etc.
Ich denke mal es hätte wenig Sinn hier das Rad nochmal neu zu erfinden, da es sicherlich genug Lösungen dieser grundlegenden Probleme gibt - Dennoch konnte ich aber nicht wirklich welche finden :x
Das Hauptproblem woran es scheitert ist das ich Windows und Visual Studio verwende und nicht gewillt bin mich mit MinGW/Cygwin herumzuplagen (weswegen auch GLib, was mir ebenfalls viele empfohlen haben nicht so wirklich eine Option ist)
Deswegen wollte ich euch, vor allem die Visual Studio Benutzer unter euch, fragen was ihr so verwendet
-
Timmy schrieb:
Auf Empfehlung vieler hab ich mir das k&r buch durchgelesen.
und welches veraltetes ANSI C Standard vermittelt dieses Buch? Hab schon mal eins in der Hand gehabt und war nicht einmal C98. Naja, vielleicht sind die neuen Editionen auf mind. C98 bzw. C99 stand.
Timmy schrieb:
Das Hauptproblem woran es scheitert ist das ich Windows und Visual Studio verwende und nicht gewillt bin mich mit MinGW/Cygwin herumzuplagen (weswegen auch GLib, was mir ebenfalls viele empfohlen haben nicht so wirklich eine Option ist)
glib ist eine gute Option, es gibt Windows Ports, du benötigst cygwin dafür nicht. Siehe GTK+ Windows Downloads. Wenn du runterscrollst, findest du die Tabelle GTK+ individual packages, wo du GLIB runterladen kannst. Am besten die ganze Seite durchlesen.
-
supertux schrieb:
glib ist eine gute Option, es gibt Windows Ports, du benötigst cygwin dafür nicht. Siehe GTK+ Windows Downloads. Wenn du runterscrollst, findest du die Tabelle GTK+ individual packages, wo du GLIB runterladen kannst. Am besten die ganze Seite durchlesen.
Sry, GLib spricht mich nicht so wirklich an, es gibt keine Anleitung wie ich das in Visual Studio einbaue oder wie ich es verwende (das ist wohl kaum eine anleitung) - außerdem seh ich nicht so wirklich ein warum ich eine 1MB große lib brauche nur um ein paar simple container verwenden zu können...
Vor allem wieso soll ich zu etwas vorkompiliertem greifen? das sind doch Sachen die sich problemlos in plattformunabhängigen .c/.h Dateien fassen lassen
Wieso muss es so schwer sein, so einfache sachen zu lösen? Bin schon fast am verzweifeln :,(
-
Vielleicht möchtest du ja statt C C++ nehmen.
-
Timmy schrieb:
Sry, GLib spricht mich nicht so wirklich an, es gibt keine Anleitung wie ich das in Visual Studio einbaue oder wie ich es verwende (das ist wohl kaum eine anleitung)
ein bisschen Eigenleistung wäre für einen Programmierer schon wünschenswert
Dein Link ist die Dokumentation der Hash-Tables API. Zugegeben, am Anfang scheint GTK+ Dokumentation unbrauchbar zu sein, aber nach kurzer Zeit lernt man die Doku zu benutzen und man kann dann dchon schnell entwickeln (rede aus Erfahrung, hab schon mit GTK+ und Glib gearbeitet). Da ist auch alles da, was du brauchst.Und wie man in deine IDE intergriert? Header-File-Pfade in die IDE anpassen, Linker Optionen anpassen? Wo ist das Problem? Wie man denn bei anderen Bibliotheken? Genau so.
Timmy schrieb:
außerdem seh ich nicht so wirklich ein warum ich eine 1MB große lib brauche nur um ein paar simple container verwenden zu können...
das liegt daran, weil die Glib nicht nur Hash-Tables und Linked-Lists kennt. Die Glib ist eine Ansammlung von vielen vielen Datenstrukturen, Stringverarbeitung, usw. Eigentlich genau das, was du von der Java Welt kennst. Die Java Bibliortheken sind auch nicht gerade klein.
Timmy schrieb:
Vor allem wieso soll ich zu etwas vorkompiliertem greifen?
muss du nicht, es ist LGPL, der Source Code ist offen, und solange du dich an den Lizenzen hälst, darfst du auch nur den Source Code in dein Projekt integrieren.
Timmy schrieb:
Wieso muss es so schwer sein, so einfache sachen zu lösen? Bin schon fast am verzweifeln :,(
eigentlich liegt es an dir, der sich so hm.... naja, einstellt.
Baracke aus Oklahoma schrieb:
Vielleicht möchtest du ja statt C C++ nehmen.
das wäre auch ein Vorschlag. Die STL hat viele solcher Sachen und zur Not kann man auf boost zugreifen.
-
Timmy schrieb:
Dennoch fehlen mir um "brauchbare" Programme zu schreiben div. Libraries, die in Java z.b. schon im "Lieferumfang" enthalten sind, wie z.B. LinkedLists, HashMaps Sortierfunktionen etc.
hier gibts einiges:
http://home.gna.org/gdsl/
http://www.cs.toronto.edu/~wayne/libwayne/
http://www.angelfire.com/linux/docinclude/yaclib/index.html
http://libds.sourceforge.net/doc/index.html
-
Die ganzen Datenstrukturen gibts natürlich auch für C, oder wie glaubt ihr wurden sonst bisher größere C-Projekte geschrieben?
Eine Linked-List bietet sich natürlich an immer inplace in die Strukturen zu schreiben, da sie sehr leicht zu implementieren ist, aber alles kompliziertere wird so nicht gehandhabt.Ich nehme die Algorithmen und Datenstrukturen aus "Mastering Algorithms with C", woher andere sie nehmen kann ich dir nicht sagen.
-
Timmy schrieb:
Ich bin normalerweise in der Java Welt zuhause
[…]
außerdem seh ich nicht so wirklich ein warum ich eine 1MB große lib brauche nur um ein paar simple container verwenden zu können...Das muss ich mir merken.
-
nman schrieb:
Timmy schrieb:
Ich bin normalerweise in der Java Welt zuhause
[…]
außerdem seh ich nicht so wirklich ein warum ich eine 1MB große lib brauche nur um ein paar simple container verwenden zu können...Das muss ich mir merken.
^^immerhin zeigt das, dass er 'nen wichtigen unterschied zwischen C und Java erkannt hat.
-
Merke: der Linker ist in der Lage nicht benötigten Code zu strippen, d.h. nur weil die Lib 1 MB groß ist muss die Executable noch lange nicht 1 MB größer werden durch die Lib.