wenn ich mir mal ein in C geschriebenes Programm anschaue und verstehen will.
Hier ein paar Tips zum Verstehen von C Programmen. Ich setze mal vorraus, daß du die Sprache an sich verstehst und auch mit Pointern usw. keine Probleme hast. Nach dem Schmaranz Buch solltest du aber kein Problem haben Pointer, Datenstrukturen, Funktionspointer usw. zu erkennen und zu verstehen.
1. Schau dir die ".h" Dateien an. Hier werden alle Deklarationen, Definitionen, etc. vorgenommen die ein Modul nach außen exportiert. Zum guten Programmierstil in C gehört, daß zu jeder Quellcodedatei ".c" auch eine Headerdatei ".h" gehört. In dieser Headerdatei findest du alle Funktionsdeklarationen, Definitionen, Structs, Enums, etc. die von anderen Programmteilen gebraucht werden, um mit diesem Speziellen Modul arbeiten zu können. Jede Funktion die hier nicht deklariert wurde, aber in der zugehörigen ".c" Datei implementiert ist, ist nach außen nicht sichtbar und ist nur zur Erledigung von Aufgaben innerhalbs des Moduls gedacht.
2. Schau besonders auf die komplexen Datentypen! Also auf die structs gucken. In großen Programmen dreht sich nahezu alles um die structs. Das sind wenn du so willst deine Klassen mit den Instanzvariablen. Schau dir an welche Variablen im struct sind und auch besonders ob und was für pointer darin enthlanten sind.
3. Hast du einen Überbklick über ein struct schaust du dir die Funktionen, die damit zusammenhängen an (die die nach außen exporiert werden und in der ".h" stehen). Damit solltest du nun auch ein Überblick haben, wie der Programmierer sich das Arbeiten mit seiner Datenstruktur gedacht hat. Gleichzeitig solltest du damit auch rausfinden wie der Programmierer eine eventuelle Collection mit der Datenstruktur umgesetzt hat. (LinkedList, Stack, Maps, etc. sind in C noch Handarbeit!)
4. Nun wenn nicht bereits geschehen, schaust du dir die ".c" Datei an. Hier findest du nun die Implementierung im Detail. Außerdem eventuell nötige Hilfsstrukturen, die zum Ausführen der Aufgabe intern benötigt werden.
5. Jetzt gehst du zur nächsten ".h" Datei und machst das ganze wieder und so weiter. Wenn du durch alle Programmteile durch bist, solltest du nun ein gutes Verständnis für die einzelnen Teile haben und das Bild wie das Programm aufgebaut ist und die verschiedenen Teile miteinander vernetzt sind sollte sich vervollständigen.
6. Geh den Programmablauf Schritt für Schritt durch. Jetzt wo du die wichtigen Teile kennst, sollte der Programmablauf leichter verständlich sein.
Absolut notwendig um fortgeschrittene C-Programme zu verstehen sind verschiedene Elemente. Du solltest generell die Sprache kennen. Dich mit Funktionspointern wohlfühlen. Datenstrukturen, wie Listen, Maps, Hashing, Ressourcebanken usw. sollten dir nicht fremd sein. Callbacks, Events, Mappings sind auch alles Sachen, die in C Programmen sehr häufig Verwendung finden.