Karl Heinz Buchegger schrieb:
>
1 | > usb_write_character( (char*)&u8_USB_Keyboard_Ascii_Data);
|
2 | >
|
>
>
> Wobei etwas einen Programmierer sofort stutzig machen sollte:
> Warum nimmt eine Funktion, die EINEN Character ausgeben soll, überhaupt
> einen Pointer auf diesen Character?
>
> Darauf gibt es keine vernünftige Erklärung und auch keinen vernünftigen
> Grund. Ganz im Gegenteil. Alles spricht dafür genau so etwas nicht zu
> tun und den Character einfach nur als Character zu übergeben. Man
> arbeitet nicht mittels Pointer, wenn man nicht muss. Und hier muss man
> nicht.
Da stimme ich Dir voll und ganz zu. Ich bin auch der Meinung, dass die
Funktion falsch ausgelegt ist - aber sie ist nicht von mir und Teil
eines großen Programmteils den ich gezwungermaßen übernehmen muss.
Glaube mir, ich bin damit nicht glücklich und da stecken noch ein paar
ganz andere Brummer drin :-( Wenn ich etwas Luft habe, werde ich mir das
gesamte Programm von Grund auf vorknüpfen und es selber programmieren
(wird schneller gehen als es zu reparieren).
> Die Chancen stehen gut, dass diese Funktion eben keinen einzelnen
> Character ausgibt, sondern einen String. Denn in diesem Fall würde man
> in der Funktionsschnittstelle dann tatsächlich einen char* erwarten.
> Entweder das, oder der Programmierer dieser Funktion war ein
> vollkommener und totaler Anfänger.
Letzteres ;-)
> In deinem "Problem", auf das dich freundlicherweise der Compiler
> aufmerksam gemacht hat, dürfte ein weiteres Problem stecken: Du benutzt
> die falsche Funktion für das, was du vorhast.
> Und nein: "Bisher hat das aber funktioniert" ist keine gute Begründung.
> Was sagt die Doku von dieser Funktion, bzw. wie sieht die Funktion
> intern aus? Danach kann man sich leicht orientieren, was diese Funktion
> eigentlich wirklich macht. So wie sie jetzt ist, passt das nicht
> zusammen. So wie eine Baufirma, die mit einem Baukran anrückt, wenn es
> gilt das Erdreich für den Keller eines Hauses auszuheben. Das passt auch
> nicht. Für diese Arbeit braucht man einen Bagger und keinen Kran.
Entschuldige, aber woher willst Du denn wissen, was die Funktion nicht
die richtige ist? Ich weiß genau was die Funktion macht und ich bin mir
darüber im Klaren, dass sie (wie einiges anderes) nicht sauber
programmiert ist. Aber manchmal muss der Teufel halt Fliegen fressen und
zusehen dass er fertig wird und sich nicht an einer Aufgabe mit
untergeordneter Priorität festfrisst.
In dem Sinne: Danke für die Codezeile, aber bitte kreide mir nicht den
Programmcode eines anderen an ;-)