\Drakes:
Void wird streng genommen nicht zurueck gegeben. Schau dir mal den Call in asm an.
...
Ja, darum habe ich es zu den Fehlern geschrieben, der Compiler lässt das meines Wissens nach gar nicht zu.
Ausserdem hast du bei p1 == p3 ? f1 : pf übersehen dass der Typ von f1 und pf gleich ist. (Mal abgesehen davon, dass man eventuell eher &f1 schreiben sollte)