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.
Gruß
For Schleife mit Quad
For Schleife mit Quad
Skylake QuadCore i7 6700K @4400MHz, MSI Z170A Gaming M5, 64 GB DDR4 @ 2133MHz, B: Ramdisk 32GB, C: Raid0 SATA SSD 1TB, D: Raid0 M2 SSD 1TB, E: Raid0 HDD 8TB, 28" 4K @ RTX2080, Win10 X64
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: For Schleife mit Quad
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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: For Schleife mit Quad
Bei PureBasic 64-Bit funktionieren For-Next-Schleifen auch mit einer Quad-Variable.
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).
- 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
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).
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: For Schleife mit Quad
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.