Hallo, ich muß viele Strings im Programm Memory speichern. Gibt es eine clevere Methode dafür? Vielleicht übers makefile? Oder wie geht es mit direkt vom Quellcode? Wer hat sowas schon mal gemacht? Thomas
ich weiß nicht, ob das geht, aber versuch's doch mit nem array. übers makefile ist unsinnig (oder?).
Wie meinst du das? Also wie das übers makefile gehen soll hab ich keine Ahnung, aber wenn deine Strings sozusagen Konstanten sind und du sie einfach im RAM brauchst dann gibt es doch nichts leichteres als: unsigned char *string1 = "Das ist ein String"; oder unsigned char string1[] = "Das ist ein String"; Du kannst sie dann auch ganz bequem über string1 accessen. Falls sie aber beim Compilieren variabel sind, könntest du sie so über die makefile einspeisen: In deinem source: unsigned char mein_string[] = DEFINED_MY_STRING; und dann im makefile der linie "CPFLAGS" folgendes hinzufügen: -DDEFINED_MY_STRING="Das ist mein String" Du könntest natürlich auch eine ganze Textdatei "dynamisch" einspielen: unsigned char mein_string[] = " #include "c:\pfad\zu\einer\datei" "; niki
Hallo, hierzu eine Frage von mir: Wieso willst du die Strings als unsigned char definieren und nicht einfach nur als char? Normalerweise setzt sich ein String aus chars zusammen, unsigned char nehme ich nur, wenn ich Variablen brauche, die ein Byte groß sind. ciao Christian
Danke Niki, ich denke ich mache es auf vorgeschlagene Standardversion. Ich dachte aber, daß solche Strings, die nicht mit PSTR erzeugt worden sind, bei Programmstart ins RAM kopiert werden, und da wäre dann kein Platz mehr. Das mit dem unsigned char ist glaube ich, damit man auch ASCII Codes größer 127 verwenden kann. Oder?
Hallo! Ja das kann sein, aber im Endeffekt verstehen dann beide (signed und unsigned, char KÖNNTE ja auch stdmässig als unsigned definiert sein) die gleichen Zeichen. Ich habe mir das unsigned angewöhnt wie ich meinen TCP/IP Stack programmiert habe. Im Allgemeinen bin ich beim Programmieren sehr ordentlich und versuche nie einen Zweifelsfall offen zu lassen. Ich mag Definitionen wie "int" oder "char" deswegen nicht, da man nie weiss wie sie jetzt wirklich definiert sind. Ich nehme immer unsigned short int unsigned long int unsigned char signed char unsw. Soll aber nicht heissen das eure Version falsch ist, es ist lediglich mein eigener Programmierstil Niki
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.