Gast
#2177000
Hallo, hab mir hier http://www.mikrocontroller.net/articles/Festkommaarithmetik#ITOA_selbst_gemacht gerade mal die itoa funktion angesehn. müsste die funktion nicht so aussehen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
|
Anzeige
|
Fehler im Wiki? - Festkommaarithmetik
Gast
#2177000
Hallo, hab mir hier http://www.mikrocontroller.net/articles/Festkommaarithmetik#ITOA_selbst_gemacht gerade mal die itoa funktion angesehn. müsste die funktion nicht so aussehen:
> for(i=9; i>0; i--) {
Damit läuft i von 9 bis 1. string[0] wird nicht beschrieben, sollte
aber.
Gast
#2177046
ahh... stimmt. hatte eben nen ziemlich dummen denkfehler. Die optimistische Annahme, das der übergebene Puffer wenigstens 11 Zeichen umfaßßt ist zumindest nicht gerade die feine englische Art ;) @ Läubi .. (laeubi) (Moderator) Benutzerseite >Die optimistische Annahme, das der übergebene Puffer wenigstens 11 >Zeichen umfaßßt ist zumindest nicht gerade die feine englische Art ;) Wei willst denn in C sicherstellen, das dein Puffer groß genug ist? Das wird IMMER manuell gemacht, eine automatische Bereichsüberprüfung gibt es bei C nicht. MFG Falk @ Philipp (Gast)
>hatte eben nen ziemlich dummen denkfehler.
Eben. Du hast aus >= ein > gemacht. Im Wiki ist es richtig.
Ist Copy & Paste so schwer im Gutenbergzeitalter?
Falk Brunner schrieb: > Wei willst denn in C sicherstellen, das dein Puffer groß genug ist? Man könnte z.B. die Bufferlänge mit übergeben. Oder wenigstens im Kommentar darauf Hinweisen wie groß der Puffer (mindestens) sein muß! Läubi .. schrieb: > Falk Brunner schrieb: >> Wei willst denn in C sicherstellen, das dein Puffer groß genug ist? > > Man könnte z.B. die Bufferlänge mit übergeben. ist trotzdem manuell, da kann man irgendwas übergeben, genauso wie mit dem Buffer, der eventuell zu klein ist. Die Verantwortung, dass das ganze richtig benutzt wird, liegt in beiden Fällen beim Programmierung > Oder wenigstens im > Kommentar darauf Hinweisen wie groß der Puffer (mindestens) sein muß! der ist allerdigns obligatorisch @ Läubi .. (laeubi) (Moderator) Benutzerseite >Man könnte z.B. die Bufferlänge mit übergeben. Wird in C selten gemacht, weil es wenig bringt. Dass ein Puffer groß genug sein muss ist implizit. > Oder wenigstens im > Kommentar darauf Hinweisen wie groß der Puffer (mindestens) sein muß! Wer lesen kann . . . "Hier ist nun unsere erste einfache Funktion, um eine vorzeichenlose 32 Bit Zahl in einen String umzuwandeln. Diese kann maximal 10 Dezimalstellen haben (0..4294967295), also wird ein Speicher für 11 Bytes benötigt (letztes Byte für den Stringterminator)." Aber wenn es dich glücklich macht, ergänze einen Kommentar im Quelltext. MFG Falk Falk Brunner schrieb: > Aber wenn es dich glücklich macht, ergänze einen Kommentar im Quelltext Das hat nix mit Glück oder Unglück zu tun, ich wollte nur darauf Hinweisen, der "Nutzer" hat unter Umständen nur die API Beschreibung, und dann könne solche Hinweise nützlich sein. Falk Brunner schrieb: > weil es wenig bringt Kann man drüber streiten, so sieht zumindest ein zweiter oder dritter der über den Quellcode schaut gleich was Sache ist und die Ausgabe ist bestenfalls verstümmelt, als das ggf. der Ganze Controller abstützt obwohl "der Fehler gar nicht in der Software liegen kann"... Aber wie gesagt ich will da auch nicht drüber streiten, jeder wie er mag. Falk Brunner schrieb: >>Man könnte z.B. die Bufferlänge mit übergeben. > > Wird in C selten gemacht, weil es wenig bringt. Dass ein Puffer groß > genug sein muss ist implizit. Das war mal in der Kernighan-Richie-Zeit. Ist schon einige Jahre her... Was ist die "Kernighan und Ri*t*chie" Zeit? Und Wann hat sie geendet? ;-) Meinst du die Zeit, wo ANSI-C Standard war? Die Pufferlänge zu übergeben ist nicht selten. Es wird doch beispielsweise darauf hingewiesen nicht mehr strcpy sondern strncpy (als exemplarisches Beispiel) zu benutzen. Simon K. schrieb: > Die Pufferlänge zu übergeben ist nicht selten. Im alten KR-C in den 80er Jahren hat man Puffer mit Gottvertrauen behandelt und Funktionen wie strncpy wurden meistens nur dann verwendet, wenn man nur den Stringanfang kopieren wollte. Mittlerweile gelten Funktionen, die keine Pufferlänge übergeben als unsicher und veraltet. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|