Zitat Zitat von p_mork
mein eigentliches problem ist, dass ich nicht weiss, wie man in c++ folgendes realisiert:
void irgendwas(a)
{
anweisung an den compiler: wann a ein float ist, dann f1(float a)
wenn a ein int ist, dann f2(int a)
u.s.w.
}
Die Funktionen void f1(float a) und void f2(int a) stehen irgendwo im Quelltext
Ich weiß ja nicht, was du damit anstellen willst...

In C++ Machst du eine Wrapper-Klasse, welche die gewünschte Funktion als virtuelle Mathode hat.
Davon werden eine Integer und eine Float-Class abgeleitet, die ihre Vorstellung von f() implementieren.

Es geht auch über eine union, aber dann programmierst du C mit C++.

Wenn es denn Standard-Funktionen sein sollen, ist fprintf dein Freund, evtl fputs. Bau dir einen FILE file, der die Ausgabe auf den UART (oder wohin auch immer) implementiert und rufe dein fprintf (file, format, args...) auf wie gewohnt. That's it. Alternativ verbiegst du stdout oder stderr.

@ogni42:

Zum C++-Debuggen sollte auch ein avr-gdb gehen, evtl. mit GUI wie insight oder ddd. Die Frage ist, ob man sich mit gdb auseinandersetzen will. Mit silulavr gehts jedenfalls. Zum richtigen debuggen brauchts dann noch einen JTAG-Server oder 1DWire-Server.