Im Moment arbeite ich mit eingebetteten Systemen und finde heraus, wie Strings auf einem Mikroprozessor ohne Betriebssystem implementiert werden können. Bisher verwende ich nur die Idee, Zeichenzeiger mit NULL-Terminierung zu verwenden und sie als Zeichenfolgen zu behandeln, wobei NULL das Ende bedeutet. Ich weiß, dass dies ziemlich häufig ist, aber können Sie sich immer darauf verlassen, dass dies der Fall ist?
Der Grund, den ich frage, ist, dass ich darüber nachgedacht habe, irgendwann ein Echtzeitbetriebssystem zu verwenden, und ich möchte so viel wie möglich meinen aktuellen Code wiederverwenden. Kann ich also für die verschiedenen Auswahlmöglichkeiten, die es gibt, ziemlich genau erwarten, dass die Saiten gleich funktionieren?
Lassen Sie mich jedoch genauer auf meinen Fall eingehen. Ich implementiere ein System, das Befehle über eine serielle Schnittstelle entgegennimmt und verarbeitet. Kann ich meinen Befehlsverarbeitungscode beibehalten und dann erwarten, dass die auf dem RTOS (das die Befehle enthält) erstellten Zeichenfolgenobjekte alle mit NULL beendet werden? Oder wäre es je nach Betriebssystem anders?
Aktualisieren
Nachdem mir geraten wurde, diese Frage zu prüfen, habe ich festgestellt, dass sie nicht genau das beantwortet, was ich stelle. Die Frage selbst ist, ob die Länge eines Strings immer übergeben werden sollte, was völlig anders ist als das, was ich frage, und obwohl einige der Antworten nützliche Informationen enthielten, sind sie nicht genau das, wonach ich suche. Die Antworten scheint es Gründe zu geben , warum oder warum nicht eine Zeichenfolge mit einem Null - Zeichen zu beenden. Der Unterschied zu dem, was ich frage, besteht darin, ob ich mehr oder weniger erwarten kann, dass die angeborenen Zeichenfolgen verschiedener Plattformen ihre eigenen Zeichenfolgen mit null beenden, ohne dass ich jede einzelne Plattform ausprobieren muss, wenn dies sinnvoll ist.