Entwickler-Ecke
Sonstiges (Delphi) - result := 0 am anfang geht, am ende nicht
hui1991 - Mi 25.02.09 18:58
Titel: result := 0 am anfang geht, am ende nicht
Hi,
ich hab etz mich gewundert warum mein Code nicht funktioniert, bzw. warum die IF-Abfrage wegoptimiert wurde.
Den Code seht ihr im Anhang.
Ist schon komisch, dass nur, weil am schluss nochmal result := 0;, obwohl das vorherige exit; diese überspringen würde.
Bug im optimierer?
MfG
jaenicke - Mi 25.02.09 19:33
Das ist kein Bug, der Quelltext sollte trotzdem korrekt funktionieren. Der Compiler nimmt glaube ich einfach Result als Schleifenvariable sozusagen. Und deshalb muss an der Stelle nix mehr passieren, diese Zeilen gibt es praktisch nicht mehr nach der Optimierung.
Schau in den Assemblercode an der Stelle (Haltepunkt aufs if und dann Strg + Shift + C), dann wirst du sehen, dass (vermute ich) in EBX gezählt wird und das Register am Ende ggf. auf 0 gesetzt wird (mit xor).
Abtippen um das zu überprüfen wollte ich den Code jetzt nicht.^^
nagel - Mi 25.02.09 20:11
jaenicke hat folgendes geschrieben : |
Abtippen um das zu überprüfen wollte ich den Code jetzt nicht.^^ |
OCR? :D
jaenicke - Mi 25.02.09 20:14
nagel hat folgendes geschrieben : |
OCR? :D |
Keine Lust, ich bin mir viel zu sicher, dass es so ist. ;-)
Wenns wirklich doch nicht stimmt, dann würde er es ja sagen, dann kann ichs immer noch testen. ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!