Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi const (https://www.delphipraxis.net/41330-const.html)

Insider2004 1. Mär 2005 18:46


const
 
const
c1: Byte = 0;
c2 = 0;


Was ist der Unterschied in der Deklaration von c1 und c2? Wird da anderer Code erzeugt?

Die Muhkuh 1. Mär 2005 18:47

Re: const
 
Hi,

c2 könnte ein Integer sein. c1 ist auf jedenfall ein Byte

alcaeus 1. Mär 2005 18:50

Re: const
 
c1 ist eine typisierte Konstante und kann somit auch als Variable "missbraucht" werden. AFAIR gibts dafuer aber auch einen Compilerschalter...

Greetz
alcaeus

Binärbaum 1. Mär 2005 19:01

Re: const
 
Bei
Delphi-Quellcode:
const c1 = 128;
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).
Während hingegen hierbei:
Delphi-Quellcode:
const c2: LongInt = 128;
ein 32-Bit-Integer verwendet wird.

MfG
Binärbaum

Insider2004 1. Mär 2005 19:18

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

Binärbaum 1. Mär 2005 19:34

Re: const
 
Zitat:

Zitat von Insider2004
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

Wohl eher
Delphi-Quellcode:
v:= 0;
[Edit]
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

himitsu 2. Mär 2005 10:14

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