Gast
#4008488
Kann man das nicht irgendwie eleganter lösen ohne hier ein zweiten BYTE *y zu benötigen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
|
Anzeige
|
Eleganterer Pointer weg
Gast
#4008488
Kann man das nicht irgendwie eleganter lösen ohne hier ein zweiten BYTE *y zu benötigen?
Simon schrieb: > Kann man das nicht irgendwie eleganter lösen ohne hier ein zweiten BYTE > *y zu benötigen? Mit einem Index i geht das auch. Ein BYTE ist aber nicht der richtige Typ für Zeichen. Das wäre char.
Gast
#4008563
Gast
#4008565
printf("%ul\r",w) ?
Ein \r ist übrigens kein a cr / line feed
Programmierst du auf einem uC oder PC? Ich schreib hier einfach mal, wie ich das auf einem uC lösen würde (ungetestet):
Für die Grösse von Buffer würde ich noch etwas Präprozessormagie anwenden, damit die Funktion auch auf anderen Plattformen funktioniert. MaWin schrieb: > printf("%ul\r",w) ? Da es sich um Debug-Ausgaben handelt, würde ich eher folgendes verwenden:
Gast
#4008752
Habe hier einen PIC24 :-) Ich probier mal die Beispiele aus, vielen Dank schonmal! Peter II schrieb: > char b* = alloca(10); Alloca ist eigentlich dafür da, wenn die Größe erst zur Laufzeit bekannt ist. Was sollte es bringen, das mit einer Konstanten aufzurufen?
Gast
#4009447
Rolf Magnus schrieb: > Alloca ist eigentlich dafür da, wenn die Größe erst zur Laufzeit bekannt > ist. Was sollte es bringen, das mit einer Konstanten aufzurufen? das was die Aufgabenstellung war. > Eleganterer Pointer weg Peter II schrieb: > Rolf Magnus schrieb: >> Alloca ist eigentlich dafür da, wenn die Größe erst zur Laufzeit bekannt >> ist. Was sollte es bringen, das mit einer Konstanten aufzurufen? > > das was die Aufgabenstellung war. > >> Eleganterer Pointer weg Wobei man auch sagen muss, dass der urspüngliche Code (jetzt mal abgesehen davon, dass man die Funktionalität auf 2 Funktionen aufteilen sollte, wie gezeigt), so schlecht nicht war. Der TO muss lernen, dass Hilfsvariablen nichts schlechtes sind. Im konkreten Beispiel und einen halbwegs intelligenten Compiler vorausgesetzt, bleibt von dieser Pointervariable sowieso im erzeugten Code nichts über, ausser einer Registerbelegung, die er aber so und so hätte. Vor allem, diese Hilfsvariable liegt auf dem Stack, frisst also kein (dauerhaftes) Brot. Wenn zwei oder vier Bytes mehr auf dem Stack ein Problem darstellen, dann liegt ein ganz anderes Problem vor. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|