Zitat Zitat von Siro Beitrag anzeigen

Code:
void uart_putc(char c)
{
    /* ....... */
}

void uart_send(void* data, unsigned int size)
{
   while(size--)
      uart_putc(*(char*)data++);   /* hier gibt es das Problem */
}
Was mir hier nicht klar ist:

wozu ist eine Funktion gut, die Daten vom Typ "weißnichtsogenau", und das ist void, in eine andere Funktion stopft, die nur mit chars umgehen kann. Sollte data mal auf ints oder floats zeigen, kommt etweder Müll raus, oder es crasht. Und die Verwendung von void-Pointern führt nur dazu, daß einem der Compiler nicht mehr helfen kann, Fehler zu vermeiden.

Es muß also heißen: uart_send(char* data, ... , und in Zukunft für jeden void* 5€ in die Kaffekasse (oder ersatzweise eine schriftliche Begründung von mindestens einer Seite, warum so etwas aus Gründen der Programmlogik wirklich nötig ist )!

MfG Klebwax