Warum Trennung zwischen Integers und Quads?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Warum Trennung zwischen Integers und Quads?

Beitrag von Lebostein »

Hi,

Bei vielen Befehlen wird zwischen Integers (Byte, Word, Long) und Quads unterschieden. Zum Beispiel Str() & StrQ(), Val() & ValQ(), Hex() & HexQ(), Bin() & BinQ().... Warum denn das? Quads sind doch auch Integer-Variablen. Wieso können nicht alle Integers mit ein und der selben Funktion bearbeitet werden? Das ist für mich nicht ganz 'pure', diese Basic....

Genauso bei den reellen Zahlen. Wieso muss es da jeweils 2 Funktionen geben StrF() & StrD(), ValF() und ValD()... Sinnvoller wäre auch hier eine einheitliche Funktion StrR() oder sowas in der Art...
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Weil Quad eigentlich nicht wirklich existiert. Das sind 2 zusammen
geklebte DWORDs. Schau dir mal den Assembler Output an.

Die anderen Variable Typen, die du aufgelistet hast, kann man
mit einem Ruck auf den Stack pushen. Auf einem 32-Bit Prozessor
musst du 2x die Werte ind en Stack laden.
Bild
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Trotzdem könnte man doch eine Funktion draus machen. Aber sicher hat das geschwindigkeitstechnische Gründe, das ganze zu trennen...
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Lebostein hat geschrieben:Trotzdem könnte man doch eine Funktion draus machen. Aber sicher hat das geschwindigkeitstechnische Gründe, das ganze zu trennen...
Hat es auch - eine universelle Funktion müsste vorher immer erst den korrekten Variablentyp ermitteln.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

>>Andre: ... eine universelle Funktion müsste vorher immer erst den korrekten Variablentyp ermitteln.

Und ? Ist das schwierig ? /:->

Das kann doch der Compiler während der Kompilierung...
Basic Pur = PureBasic
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Sylvia hat geschrieben:>>Andre: ... eine universelle Funktion müsste vorher immer erst den korrekten Variablentyp ermitteln.

Und ? Ist das schwierig ? /:->

Das kann doch der Compiler während der Kompilierung...
Das wäre mit dem überladen von Proceduren gleichzusetzen. Geht das nu eigentlich mit 4.0 oder nich? *zufaulzumtesten* ^^
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Sylvia hat geschrieben:Das kann doch der Compiler während der Kompilierung...
Sicher?

Code: Alles auswählen

Val(CallFunctionFast(*sqr, 144))
Kommt die 12 nun als Long, Quad, Float oder Double?
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Ich würde CallFunctionFast eh nicht mehr benutzen! Liefert immer Long,
aber das weisst du ja auch selber ;) . Auch in C++ würde das nicht gehen!
Ich fände überladene Funktionen eigentlich auch gar nicht so schlecht :wink: Könnte wirklich vom Compiler übernommen werden.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Das mit den optionalen Parametern finde ich schonmal einen tollen
Anfang, aber das Überladen wäre natürlich genial. Da bin ich schon lange
dafür.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

das wäre für 4.0 release wahrscheinlich etwas kurzfristig...
vieleicht kommts ja für pb 5.0.net
Gesperrt