Beim Lesen von "TCP/IP Illustrated, Vol. 2'" haben mir die vielen Graphiken gefallen, die miteinander verbundener C struct sehr anschaulich darstellen.
Eine Idee waere, ein Python Package zu schreiben, das C code parst (z.B. mit
gcc-xml), und daraus solche Graphiken erzeugt (etwa im gpic(1) Format).
Es gibt auch andere Vektorgraphik-Formate, aber gpic hat den Vorteil, dass es per Hand nacheditiert werden kann, wenn es erforderlich ist.
Vielleicht gibt es auch bereits einen anderen Ansatz?
Visualisierer fuer C code
Mann kan doch auch *.svg-Dateien nachträglich mit einem Texteditor bearbeiten.farid hat geschrieben:Es gibt auch andere Vektorgraphik-Formate, aber gpic hat den Vorteil, dass es per Hand nacheditiert werden kann, wenn es erforderlich ist.
PIC-Dateien kann man vielleicht einfacher erstellen, weil man bei SVG sicher mehr Arbeit in einen Layout-Algorithmus stecken muss.
Ich würde ja erst einmal *.dot-Dateien für GraphViz ausprobieren. Nettes Beispiel ist datastruct.
Ich würde ja erst einmal *.dot-Dateien für GraphViz ausprobieren. Nettes Beispiel ist datastruct.
Yep. Das ist genau der Punkt!BlackJack hat geschrieben:PIC-Dateien kann man vielleicht einfacher erstellen, weil man bei SVG sicher mehr Arbeit in einen Layout-Algorithmus stecken muss.
Hey, danke! Das ist gar nicht mal so schlecht fuer den Anfang!BlackJack hat geschrieben:Ich würde ja erst einmal *.dot-Dateien für GraphViz ausprobieren. Nettes Beispiel ist datastruct.
Grundsätzlich gibt's so etwas ja schon mit Doxygen. Das setzt auch auf GraphViz. Beispiele:
Aus dem Dreieck und Punkt wird:
Aus der Liste:
Etwas kompakter geht's auch, wenn es nur um die Zusammenhänge der Strukturen und nicht um alle Felder geht:
Code: Alles auswählen
typedef struct {
double x;
double y;
} Point;
typedef struct {
Point points[3];
} Triangle;
typedef struct LinkedList {
void *data;
struct LinkedList *next;
} LinkedList;
Aus der Liste:
Etwas kompakter geht's auch, wenn es nur um die Zusammenhänge der Strukturen und nicht um alle Felder geht: