Compilerproblem oder Denkfehler?
Verfasst: 20.08.2012 23:34
Nach langem mal wieder eine Frage, hab ich hier einen Denkfehler oder macht der Compiler da murks:
Getestet unter Win7 x64 mit dem 64bit Compiler 4.61
Ausgabe:
Wiso verliert bei der oberen Liste b seinen Wert? Ich kann nur mutmaßen das hier aus irgendeinem Grund in nebenliegenden Speicher geschrieben wird, das ganze passiert nur wenn man ein Ergebnis von Sin,Cos,Tan mit irgendwas Multipliziert (zumindest nach meinen kurzen Tests).
Weist man a einen Wert aus einer Float oder Double Variable zu bleibt b unangetastet.
Der Fehler tritt bei der x86 Version nicht auf, weder bei Quad noch bei Integer (was da ja eh Long entspricht)
Tritt der Fehler bei euch auch auf? Hab ich was falsch gedacht oder ist es ein Problem mit dem Compiler?
LG KeyKon
Getestet unter Win7 x64 mit dem 64bit Compiler 4.61
Code: Alles auswählen
;Fehler:
Structure qu
a.q
b.q
EndStructure
Debug SizeOf(qu)
NewList Quad.qu()
AddElement(Quad())
Quad()\a = 0
Quad()\b = 1
Debug Quad()\b
Quad()\a = Sin(0)*1
Debug Quad()\b
;Geht:
Structure in
a.i
b.i
EndStructure
Debug SizeOf(in)
NewList Integer.in()
AddElement(Integer())
Integer()\a = 0
Integer()\b = 1
Debug Integer()\b
Integer()\a = Sin(0)*1
Debug Integer()\b16
1
0
16
1
1
Wiso verliert bei der oberen Liste b seinen Wert? Ich kann nur mutmaßen das hier aus irgendeinem Grund in nebenliegenden Speicher geschrieben wird, das ganze passiert nur wenn man ein Ergebnis von Sin,Cos,Tan mit irgendwas Multipliziert (zumindest nach meinen kurzen Tests).
Weist man a einen Wert aus einer Float oder Double Variable zu bleibt b unangetastet.
Der Fehler tritt bei der x86 Version nicht auf, weder bei Quad noch bei Integer (was da ja eh Long entspricht)
Tritt der Fehler bei euch auch auf? Hab ich was falsch gedacht oder ist es ein Problem mit dem Compiler?
LG KeyKon