-
-
Erfahrener Benutzer
Roboter Genie
zu _R2D2
ich denke, bzw. ich hoffe doch, daß der Compiler stets den ausgerechneten Wert, in diesem Falle 6 einsetzt. Dafür sorgt der "Preprozessor" wenn ich mich nicht irre. Das Define wir doch vom Preprozessor ausgewertet, bevor der Compiler überhaupt loslegt. Also sollte der Compiler eigentlich immer diese entsprechend vorausberechnete Konstante einsetzen. Aber ehrlich gesagt hab ich keine wirkliche Ahnung von Compilern, wies sie etwas auswerten. Aber entscheidend für mich ist deine Aussage:
Jeder char* String wird mit 0 terminiert in C/C++.
Damit liegt meine Software rechnerisch also immer richtig.
zu PicNick:
Jou, bei den Intels gab, bzw. gibt es diese Befehle "REPZ STOSW"
Repeat Until Zero, Speicher den Wert an ES
I oder auch "REPZ MOVSB" kopiere alle Werte von DS:SI nach ES
I wobei hier der "Zero" Bezug glaube ich auf das "CX" Register bezogen wurde, nicht auf ein "0" Vorkommen innerhalb des Speichers. Ist aber schon ein Weilchen her, könnte mich auch irren. Bei Pascal kenne ich mich recht gut aus, da steht in dem ersten Byte (Array[0]) immer die Länge des Strings. Dafür wurden aber auch bei String Variablen gleich 256 Bytes reserviert, wenn man nicht
separat eine feste Länge angegeben hat. Maximal war ein String halt 255 Zeichen. Ein strlen war aber hier durch direkten Zugriff auf das Byte mit dem index 0 möglich. Bei Nullterminierten Strings (wie bei C) muss man erst "suchen" wo isse denn die olle Null..... Dafür gibts halt keine Längenbegrenzung bei den "Null Terminierten" Wie Du schon sagst, hat alles Vor und auch Nachteile.
zu p_mork:
Danke für den Hinweis mit den Klammern, das vergesse ich immer wieder und bin schon fürchterlich auf die Schna..e damit gefallen.
Absolut berechtigt hier Klammern zu setzen.
sizeof(Password)-1*2
ist dann doch "etwas unterschiedlich" zu
(sizeof(Password)-1)*2
So Leute, morgen ist der 1. Advent, ich Danke Euch und wünsche noch ein ruhiges Wochenende.
Siro
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen