AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warnung bei nicht initialisieren String-Result

Ein Thema von Ralle1 · begonnen am 20. Okt 2014 · letzter Beitrag vom 22. Okt 2014
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.222 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Warnung bei nicht initialisieren String-Result

  Alt 20. Okt 2014, 17:15
Was glaubst du, wovor ich gerne alles gewarnt werden würde. Aber im Delphi-Land lebt man anscheinend gerne gefährlich

Du hast mit der Beobachtung vollkommen Recht, siehe Doku:
http://docwiki.embarcadero.com/RADSt...nction_Results

Zitat:
For a string, dynamic array, method pointer, or variant result, the effects are the same as if the function result were declared as an additional var parameter following the declared parameters. In other words, the caller passes an additional 32-bit pointer that points to a variable in which to return the function result.

Die Doku ist natürlich auch nicht vollständig, bei IInterface ist das auch so. Bei TObject anscheinend aber nicht. Verstanden habe ich es nie.

Geändert von Der schöne Günther (20. Okt 2014 um 17:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Warnung bei nicht initialisieren String-Result

  Alt 20. Okt 2014, 17:27
Die Doku ist natürlich auch nicht vollständig, bei IInterface ist das auch so. Bei TObject anscheinend aber nicht. Verstanden habe ich es nie.
Alles was eine Referenzzählung hat wird hier automatisch initialisiert.

Dazu gehören nun mal Strings und Interfaces
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.055 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Warnung bei nicht initialisieren String-Result

  Alt 20. Okt 2014, 17:36
Jojo, der fängt bald an zu schimmeln, so alt ist der Wunsch schon:
http://qc.embarcadero.com/wc/qcmain.aspx?d=32556

Ich hab ihn mal bei Marco in Erinnerung gerufen - ein paar +10 Votes für den Eintrag würden übrigens nicht schaden

P.S. Der QC Windows Client bockt übrigens aktuell wegen des enorm lahmen Logins, aber über die Weboberfläche kommt man drauf.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (20. Okt 2014 um 17:44 Uhr)
  Mit Zitat antworten Zitat
Ralle1

Registriert seit: 2. Nov 2011
49 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Warnung bei nicht initialisieren String-Result

  Alt 21. Okt 2014, 16:15
Danke für Eure Infos! Habe meine Votes abgegeben...
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Warnung bei nicht initialisieren String-Result

  Alt 21. Okt 2014, 16:29
Ich hab ihn mal bei Marco in Erinnerung gerufen
Da bin ich ja mal gespannt. Denn (ich glaube Danny Thorpe hat das mal irgendwann erwähnt) die Warnungen werden vom Code-Generator ausgegeben und da ist im AST schon die Information drinnen, dass "Result" als var-Parameter übergeben wird (=>keine Warnung wegen nicht Initialisierung) und auch "LStrClr" und der Gleichen aufgerufen wird (=>kein Hinweis wegen ungenutzter Variable bei lokalen Variablen).
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.222 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Warnung bei nicht initialisieren String-Result

  Alt 21. Okt 2014, 18:44
Verstanden habe ich es nie.
Alles was eine Referenzzählung hat
Natürlich, darauf bin ich nicht gekommen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.752 Beiträge
 
Delphi 12 Athens
 
#7

AW: Warnung bei nicht initialisieren String-Result

  Alt 21. Okt 2014, 19:53
Im Grunde müsste doch "nur" etwas da rein, was kurz nach dem Beginn einer Funktion das Result als "nicht initialisiert" setzt, bzw. diesen Result-Var-Parameter nicht automatisch auf "initialisiert", womit dann all diese Warnungen wieder möglich werden würden.

Und wenn man schon dabei ist, dann bitte auch das Gleiche ebenfalls bei Schleifen-Variablen nach der For-Schleife.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Warnung bei nicht initialisieren String-Result

  Alt 22. Okt 2014, 02:53
Es ist ja kein Mangel, sondern vom Compilerbauer mit Absicht so eingebaut. Das 'Feature' einfach wieder ausbauen.

Wenn das dann gleich ein Sprachfehler wird (also keine Warnung, sondern ein Compilererror), kann man sich diese dämliche Compilermagic auch sparen. Dann muss der Programmierer eben immer explizit initialisieren, was imho sowieso besser ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.752 Beiträge
 
Delphi 12 Athens
 
#9

AW: Warnung bei nicht initialisieren String-Result

  Alt 22. Okt 2014, 18:51
Warum?

Das Result und die Forschleifenvariable sind danach nunmal in einem Zustand, wo sie keinen definierten Wert besitzen.

Ja, das Result ist initialisiert, aber eben nicht mit einem '' , nil oder Empty, so wie man es erwarten würde.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Okt 2014 um 18:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:55 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