Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Compiler warnt nicht vor nicht initialisiertem Rückgabewert wenn... (https://www.delphipraxis.net/184244-compiler-warnt-nicht-vor-nicht-initialisiertem-rueckgabewert-wenn.html)

himitsu 12. Mär 2015 07:29

AW: Compiler warnt nicht vor nicht initialisiertem Rückgabewert wenn...
 
Zitat:

Zitat von Dejan Vu (Beitrag 1293093)
Ich kenne kein Argument, ...

Darum auch ein "Problem", daß Delphi da nicht warnt.

Delphi-Quellcode:
function Test: string;
begin
  // Strings sind ja bekanntlich mit '' initialisiert, was im Prinzip auch stimmt. Ungünstig ist nur, daß Delphi hier
  // eigentlich procedure Test(var Result: string); implementiert, also in Bezug auf die fehlende "nicht initialisiert"-Warnung.
  Result := Result + '*';
end;

var
  S: string;
begin
  for i := 0 to 10 do
    S := Test;
  ShowMessage(S);
end;

jaenicke 12. Mär 2015 11:17

AW: Compiler warnt nicht vor nicht initialisiertem Rückgabewert wenn...
 
Zitat:

Zitat von himitsu (Beitrag 1293087)
Hatte dadurch noch einen weiteren Fall entdeckt.

Delphi-Quellcode:
procedure Test;
var
  Value: Integer;
procedure Inner;
  begin
    if Value = 0 then
      ;
  end;
begin
  //Value := 0; // das hatte ich vergessen
  Inner;
end;

Variablen oberhalb lokaler Prozeduren zu deklarieren halte ich persönlich für extrem unsauber. Wenn man diese darin braucht, sollte man diese auch übergeben...

himitsu 12. Mär 2015 15:09

AW: Compiler warnt nicht vor nicht initialisiertem Rückgabewert wenn...
 
Nja, oberhalb kommen bei mir immer die Variablen, welche auch innen benutzt werden
und darunter die Variablen für die Hauptprozedur.

Aber wenn es dich beruhigt ... die Prozeduren sind seit gestern Abend eigenständige Methoden und die (vielen) Variablen ein Record als Var-Parameter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Seite 2 von 2     12   

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