Seite 1 von 1

For Schleife mit Quad

Verfasst: 11.06.2018 21:50
von topsoft
Hallo.

Ist schon mal jemanden aufgefallen das in einer For Next Schleife der Variablentyp Quad nicht zulässig ist?
Ich habe diese Fehlermeldung gerade zum ersten mal gehabt da noch nie benötigt. Nicht wirklich schlimm.
Mir stellt sich nur die Frage warum das so ist? Auch auf 32 bit kann man ja nun mit 64 bit rechnen.
Wahrscheinlich einfach nicht implementiert.

Bild

Gruß

Re: For Schleife mit Quad

Verfasst: 11.06.2018 22:26
von ts-soft
Eine longbasierte For Schleife ist ASM optimiert und schneller, darum gibt es nur eine For Schleife für Long. Für andere Werte kann man ja immer noch While Wend nutzen.

Re: For Schleife mit Quad

Verfasst: 11.06.2018 23:29
von Sicro
Bei PureBasic 64-Bit funktionieren For-Next-Schleifen auch mit einer Quad-Variable.
  • 32-Bit-Prozessor/Betriebssystem: Long-Variablen (4 Bytes = 32 Bits = native Speichergröße*) am schnellsten
  • 64-Bit-Prozessor/Betriebssystem: Quad-Variablen (8 Bytes = 64 Bits = native Speichergröße*) am schnellsten
* native Speichergröße: Speichergröße, die der Prozessor direkt verarbeiten kann

Ich vermute, die PB-Entwickler verwenden die For-Next-Schleife-Befehle von der Assemblersprache (zu der PB alle PB-Codes übersetzt), die deine entdeckte Einschränkung unter 32-Bit-Prozessor/Betriebssystem hat. Bei der ASM-For-Next-Schleife wird dann nur eine Variable bis zur nativen Speichergröße unterstützt (32-Bit: maximal Long-Variable möglich, 64-Bit: maximal Quad-Variable möglich).

Re: For Schleife mit Quad

Verfasst: 12.06.2018 09:13
von NicTheQuick
Nutz einfach Integer anstatt Long oder Quad. Und wenn du mal über mehr als 4 Milliarden Werte iterieren willst, musst du eben While nehmen in der 32-Bit Version.