Hallo,
Zitat Zitat von m.a.r.v.i.n
...
wird eine Funktion aus einer c-Datei aufgerufen, werden auch alle anderen Funktionen aus der gleichen c-Datei mitgelinkt, leider.
muß heißen "aus der gleichen .o-Datei".

..., dann muß man die c-Files wie z.B. die print.c noch stärker splitten.
um die Dateien nicht beliebig zu zerkleinern, und damit auch den Überblick zu verlieren, könnte man die einzelnen Funktionen (in encoder.c gibt es sogar 6) mittels #ifdef/#endif's klammern.
Nun muß nur das Makefile angepaßt werden, um für jede einzelne Funktion (dieselbe) .c-Datei mit verschiedenen -Ddefine's in verschiedene .o-Dateien zu übersetzen (aus encoder.c würden dann 6 verschiedene .o-Dateien).
Dies hätte den gewünschten Vorteil (nur eine Funktion pro .o-Datei), ohne die Quelldatei-Struktur völlig über den Haufen zu werfen.