Hallo,
hm. Ich soll den "Zuhörenden" schildern, anhand von Struktogrammen oder UML wie das Programm aufgebaut ist und wie man dieses verändern kann. Ich denke es werden Fragen kommen wie : Wie hängt diese *.c Datei mit der anderen zusammen. (und es gibt ja 24 Stück davon) und sowas muß ich eben erklären können :-( Und um das analysieren zu können braucht man mindestens gute Programmierkenntnisse, die ich nun mal "noch" nicht habe.
Ich will Dich ja nicht ganz deprimieren, aber selbst für einen erfahreren Programmierer ist es bei weitem keine Arbeit von 5 Minuten, zu verstehen, was sich jemand anderes da so einfallen hat lassen.
Die von Dir gegebenen Informationen würden mir zum Beispiel nicht ausreichen, um mit der Arbeit beginnen zu können. Da es, so wie es sich für mich darstellt, darum dreht, wie man das Programm so abändern kann, daß es euren Anforderungen entspricht, müßtest Du zuerst wissen, was das geänderte Programm alles können muß.
Erst dann, nochmals unter der Voraussetzung, daß Du schon Erfahrung mit C und fremden Code hast, kannst Du Dich daran machen, den bestehenden Code so zu prüfen, daß ein sinnvolles Ergebnis rauskommt.
Die Aufgabe ist, - zu beschreiben, wie dieses Programm funktioniert und was es genau macht. Geschrieben wie gesagt ist es in C.
Es wandelt Rastergrafiken in Vektorgrafiken um, soweit ich das sehe.
Wenn mich nicht alles täuscht, verwendet es auch ein Bibliothek (tiff.lib), welche dem Code zwar beiliegt, deren Funktionsweise allerdings nirgends dokumentiert ist. (wie gesagt, beim flüchtigen Drübersehen)
Die wollen schon etwas mehr wissen, als die Bedienung des Programms, sprich was man eingeben muss und was als Ausgabe kommt. Zu detailliert denke ich auch nicht.
denn sowas :
module = (module == NULL) ? "tifflib" : module;
sprintf(header_str, "- %s warning :", module);
if ((buffer = (char *) malloc(strlen(header_str) + strlen(fmt) + 2)) == NULL)
return;
sprintf(buffer, "%s %s\n", header_str, fmt);
log_vprintf(buffer, ap);
free(buffer);
ist verwirrend und deprimierend. :-(
Für sich betrachtet, ist das nicht zu schwierig allerdings will keiner wirklich von dir hören:
"Es ist nun bitte folgendes, wenn 'module' nicht gesetzt, also NULL, ist, dann wird der Pointer der Stringkonstante 'tifflib' module zugewiesen.
Dann wird in den String 'header_str' folgender Text kopiert:....
Danach wird ein Speicher allokiert, der .... Löänge haben soll.
Wenn das schief geht, dann wird einfach kommentarlos ein return gemacht.
Ansonst wird ... in den string buffer kopiert.
nachdem die Funktion log_vprintf aufgerufen wurde, wird der vorher allokiert Steicher wieder freigegeben."
Sowas nützt eigentlich keinem was. Anscheinend wird hier eine Warnung in einen Logfile ausgegeben. Aber genau könnte ich es so auch nicht sagen;-)
Das heißt allerdings, daß Du jetzt einmal verstehen mußt, was all diese Anweisungen zusammen wirklich machen, quasi auf einer Metaebene.
Das allerdings jetzt blind bis ins Detail für das ganze Programm zu machen, erscheint mir mehr als Beschäftigungstherapie, als das es Sinn machen würde.
Solche Analysen mache ich nur, wenn ich _genau_ weiß, was ich am Code ändern will, und dann suche ich so lange, bis ich weiß, was wirklich zu tun ist. Den Rest lasse ich einfach links liegen, erkläre es also gewissermaßen zum PAL, womit es für mich unsichtbar wird.
Grüße
Klaus
Danke für die Mühe.
S.K.