AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi const <name> : <datentyp> = <wert> und case <name
Thema durchsuchen
Ansicht
Themen-Optionen

const <name> : <datentyp> = <wert> und case <name

Ein Thema von sveni2211 · begonnen am 23. Jul 2008 · letzter Beitrag vom 24. Jul 2008
Antwort Antwort
Seite 2 von 2     12   
sveni2211

Registriert seit: 22. Dez 2006
Ort: Friedrichroda
38 Beiträge
 
#11

Re: const <name> : <datentyp> = <wert> und

  Alt 23. Jul 2008, 22:11
Zitat von SirThornberry:
Warum willst du überhaupt den Typ angeben? Bei einer Konstante ist der Typ doch völlig egal?!
Wenn Delphi der Meinung ist, ein Datentyp sei zu klein um einen Wert zu übernehmen (z.B. wenn du einem LongWord einen Int64 zuweist), dann gibt das keinen Typ- Fehler wie unter .NET, sondern Delphi erweitert einfach den kleineren der Beiden. In dem Fall würde der LongWord einfach zu Int64.

Wenn die Daten nun übertragen werden als Bit- Strom und auf der anderen Seite Byte für Byte ausgelesen und interpretiert, wäre es fatal, wenn statt einem Byte, das gelesen werden soll, in Integer angeliefert worden wäre. In dem Fall würde es nicht reichen, ein Byte zu lesen, um den darin enthaltenen Zahlenwert richtig zu interpretieren. Sondern ich hätte nur den Low oder High Anteil des Integer, was als Byte interpretiert vollkommenen Quark ergibt.
Um das von vorherein zu vermeiden, typisiere ich halt alles durch und überlasse nichts dem Compiler.
In gewisser Weise so, wie es unter .NET automatisch geschicht. Dort kann man einen Int16 nie einen Int32 zuweisen, außer man tut ihn explizit (und damit bewußt) casten durch Convert.ToInt16.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: const <name> : <datentyp> = <wert> und

  Alt 23. Jul 2008, 22:23
Du hättest die Konstanste auch typenlos definieren, aber beim verschicken sicherstellen können, das genau ein BYTE übertragen wird. Implizite Annahmen (so wie Du sie erfragt hast) sind sehr gefährlich, wie Du schon angemerkt hat (anderer Compiler, Delphi-Entwickler haben schlechte Laune etc.). Daher würde ich diese Zweifel im Code explizit ausräumen. Dann ergeben sich solche Fragen gar nicht.

Ich denke, eine Konstante ist ein Platzhalter. Das man Konstanten ändern kann, widerspricht irgendwie dem Terminus "Konstante".
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: const <name> : <datentyp> = <wert> und

  Alt 24. Jul 2008, 12:00
In Turbo Delphi löst der Compiler bei einer Zuweisung einer typisierten Konstante einen Fehler aus:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  test : Integer = 1;
begin
  test := 100; //Hier der Fehler
end;
Code:
[E2064] Der linken Seite kann nichts zugewiesen werden
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#14

Re: const <name> : <datentyp> = <wert> und

  Alt 24. Jul 2008, 12:12
Siehe #9
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: const <name> : <datentyp> = <wert> und

  Alt 24. Jul 2008, 12:43
Zitat von DeddyH:
Siehe #9
Oder offiziell mit einem Compilerschalter (Assignable typed constants oder so
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: const <name> : <datentyp> = <wert> und

  Alt 24. Jul 2008, 19:59
^^ sorry überlesen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz