Seite 1 von 2
Warum Trennung zwischen Integers und Quads?
Verfasst: 10.02.2006 08:56
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...
Verfasst: 10.02.2006 15:30
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.
Verfasst: 10.02.2006 15:38
von Lebostein
Trotzdem könnte man doch eine Funktion draus machen. Aber sicher hat das geschwindigkeitstechnische Gründe, das ganze zu trennen...
Verfasst: 10.02.2006 19:56
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.
Verfasst: 10.02.2006 20:50
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...
Verfasst: 10.02.2006 21:27
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* ^^
Verfasst: 10.02.2006 21:35
von freedimension
Sylvia hat geschrieben:Das kann doch der Compiler während der Kompilierung...
Sicher?
Kommt die 12 nun als Long, Quad, Float oder Double?
Verfasst: 10.02.2006 21:54
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

Könnte wirklich vom Compiler übernommen werden.
Verfasst: 11.02.2006 16:53
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.
Verfasst: 11.02.2006 17:08
von Zaphod
das wäre für 4.0 release wahrscheinlich etwas kurzfristig...
vieleicht kommts ja für pb 5.0.net