![]() |
const
const
c1: Byte = 0; c2 = 0; Was ist der Unterschied in der Deklaration von c1 und c2? Wird da anderer Code erzeugt? |
Re: const
Hi,
c2 könnte ein Integer sein. c1 ist auf jedenfall ein Byte |
Re: const
c1 ist eine typisierte Konstante und kann somit auch als Variable "missbraucht" werden. AFAIR gibts dafuer aber auch einen Compilerschalter...
Greetz alcaeus |
Re: const
Bei
Delphi-Quellcode:
verwendet der Compiler IMHO den kleinsten Datentyp, mit dem man diese Zahl darstellen kann (hier also Byte, es werden also nur 8 Bit benötigt).
const c1 = 128;
Während hingegen hierbei:
Delphi-Quellcode:
ein 32-Bit-Integer verwendet wird.
const c2: LongInt = 128;
MfG Binärbaum |
Re: const
Sehr interessante Gedanken. Noch eine Frage:
const c1: Byte = 0; c2 = 0; var v: Integer; begin v := c2; //dies entspricht wohl v:=0; v := c1; //und hier?: v:=0 oder v:=speicherbereich, der mit 0 belegt ist |
Re: const
Zitat:
Delphi-Quellcode:
[Edit]
v:= 0;
Das Vorgehen hierbei ist etwa folgendes: da v und c1 unterschiedliche Typen sind, wird der Typ erweitert und dieser erweiterte Wert dann in den Speicherbereich von v geschrieben, wie bei einer Zuweisung. [/Edit] PS: Für QT kann man auch die Delphi-Tags verwenden :wink: MfG Binärbaum |
Re: const
Also ich hatte auch mal was gehört, dass immer der kleinstmögliche Datentype verwendet wird.
-128..127 SmallInt 128..255 Byte -32xxx..32xxx ShortInt 32xxx..65xxx Word usw. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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-2025 by Thomas Breitkreuz