![]() |
Compilerwarnungen eliminieren
Folgende Funktion generiert eine Compilerwarnung
Delphi-Quellcode:
[dcc32 Warnung] VST_Code.pas(20): W1023 Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
function GetNodeByIndex(iIndex: Integer): PVirtualNode;
begin Result := VSTTestForm.VST.GetFirst(True); while Assigned(Result) and (VSTTestForm.VST.AbsoluteIndex(Result) <> iIndex) do Result := VSTTestForm.VST.GetNext(Result, True); end; Kann ich iIndex gefahrlos als Cardinal deklarieren? Was wenn der Funktion durch einen Fehler doch mal unbeabsichtigt ein Wert im Bereich <0 übergeben werden sollte? |
AW: Compilerwarnungen eliminieren
Ich würde deinen Typ bei Integer belassen, eine Assertion einbauen und danach vor der Übergabe in Cardinal hard-casten.
|
AW: Compilerwarnungen eliminieren
Einfach so? Wenn ja dann bleibt die Meldung noch
Delphi-Quellcode:
iIndex := Cardinal(iIndex);
|
AW: Compilerwarnungen eliminieren
Delphi-Quellcode:
VSTTestForm.VST.AbsoluteIndex(Result) <> Cardinal(iIndex)
|
AW: Compilerwarnungen eliminieren
Das Assert wäre nur für mich oder und kommt nicht ins Release?
|
AW: Compilerwarnungen eliminieren
Zitat:
|
AW: Compilerwarnungen eliminieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 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