![]() |
INT64 nicht ordinal?
Hallo zusammen,
in einem Programm bekam ich bei diesem Quelltext ...
Delphi-Quellcode:
... die Fehlermeldung, dass ein ordinaler Datentyp für die zählergesteuerte Schleife notwendig ist. Da ich aber den int64-Typ benötige, habe ich das nun leider so machen müssen:
var i : int64;
begin for i:= 0 to 1000 do //...
Delphi-Quellcode:
Gibt es bessere Vorschläge/Varianten? :gruebel:
var i : int64;
i:= 0; while i <= 1000 do begin //<tue irgend was> inc(i); end; |
Re: INT64 nicht ordinal?
Int64 ist nicht ordinal, weil es ein zusammengesetzter Datentyp ist. (Passt nicht in ein Prozessorregister - oder so.)
|
Re: INT64 nicht ordinal?
Ja, Integer nehmen, oder Cardinal ;)
Int64 ist ein zusammengesetzter Datentyp - native 64Bit-Datentypen gibts nur unter 64Bit CPUs mit 64Bit OS und einer Sprache die für 64Bit ausgelegt ist ;) |
Re: INT64 nicht ordinal?
Delphi-Quellcode:
ist imho schneller!
repeat
... Inc(i); until i = 1000; |
Re: INT64 nicht ordinal?
@Stevie: Aber auch nur, weil du auf "=" und nicht "<=" prüfst. Ansonsten ist der einzigen Unterschied, dass die repeat-Schleife mindestens ein Mal durchlaufen wird, while aber erst garnicht wenn die Abbruchbedingung von vorne herein nicht passt.
|
Re: INT64 nicht ordinal?
Zitat:
|
Re: INT64 nicht ordinal?
Nö, beides läuft im Wesentlichen auf ein "cmp" und ein "jp" oder "jz" oder "jnz" oder halt irgendeinen Sprungbefehl hinaus. Evtl. auch noch die eine oder andere Addition/Subtraktion, je nach Abbruchbedingung.
|
Re: INT64 nicht ordinal?
Zitat:
Wenn du nur einen bestimmten bereich hochzählen willst, der auch in einen integer passt, würde es auch gehen einen integer zu verwenden und den int64startwert dazuzurechnen. Nur mal so :-D |
Re: INT64 nicht ordinal?
Warum nimmst du nicht einen Integer?
Wenn du explizit einen Int64 innerhalb der Schleife brauchst, dann kannst du ja den Integer umtypen. Eine Schleife die ernsthaft einen Int64 zum Zaehlen braucht ist mit grosser Wahrscheinlichkeit Unsinn. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz