Vra

Ek het 'n funksie wat gee my die volgende waarskuwing:

  

[DCC Waarskuwing] filename.pas (6939): W1035 terug waarde van 'n funksie 'n funksie kan ongedefinieer

Die funksie is egter skoon, klein, en het nie 'n bekende, verwag, terugkeer waarde. Die eerste verklaring in die funksie is:

Result := '';

en daar is geen plaaslike veranderlike of parameter genoem Result nie.

Is daar enige vorm van pragma-agtige richtlijn Ek kan hierdie metode met hierdie waarskuwing te verwyder omring? Dit is Delphi 2007.

Ongelukkig het die hulp stelsel op hierdie Delphi installasie is nie werk nie, dus ek kan nie nou pop-up die hulp vir die waarskuwing.

Wie weet uit die top van hul kop wat ek kan doen?

Was dit nuttig?

Oplossing

Is jy seker jy alles aan die waarskuwing op te los gedoen het? Miskien kan jy die kode post vir ons om te kyk na?

Jy kan afskakel die waarskuwing plaaslik op hierdie manier:

{$WARN NO_RETVAL OFF}
function func(...): string;
begin
  ...
end;
{$WARN NO_RETVAL ON}

Ander wenke

Ek is nie seker dat ek wil hê dat die kode te sien vir hierdie eenheid ... na alles, die fout vind by lyn 6939 ... Miskien 'n paar interne samesteller tafel is oorskry?

Dit blyk dat daar 'n soort van fout in Delphi wees. Lees hierdie pos, die laaste kommentaar skakels na ander fout-berigte dat die een wat jy het dalk:

http://qc.codegear.com/wc/qcmain.aspx ? d = 8144

Die {$ WAARSKU NO_RETVAL off} is wat jy is op soek na, maar oor die algemeen Ek hou van om uit te vind waarom dinge soos dit gebeur. Jy kan oorweeg anders opmaak dit en sien as dit help.

Het jy enige vloei verander opdragte soos afrit in daar? Het jy direk uitsonderings in te samel, ens? Maak jou saak verklaring het 'n ander aan die einde wat 'n waarde van resultate sets?

kan probeer opstel dié elemente en kyk of dit elimineer die waarskuwing ook.

Met die oog op 'n goeie antwoord vir hierdie kry, sal jy moet die kode post. In die algemeen, sal die Delphi samesteller hierdie waarskuwing gee as daar 'n moontlike kode pad wat daartoe kan lei dat die resultaat nie gedefinieer. Soms dat kode pad is minder as voor die hand liggend.

Daar is so 'n fout in Delphi samesteller sedert, ten minste, Delphi4: as som van getalle van parameters funksie se (insluitend Self en gevolg) en plaaslike veranderlikes oorskry 31, dit probleme veroorsaak. Byvoorbeeld, kan dit skryf W1035 waarskuwings (gevolg kan word ongedefinieerd). Dit kan nie gebruik veranderlikes mis. Probeer net hierdie projek:

program TestCompilerProblems;

procedure Proc;
var
  a01, a02, a03, a04, a05, a06, a07, a08, a09, a10,
  a11, a12, a13, a14, a15, a16, a17, a18, a19, a20,
  a21, a22, a23, a24, a25, a26, a27, a28, a29, a30,
  a31, a32, a33, a34, a35, a36, a37, a38, a39, a40: Integer;
begin
end;

begin
  Proc;
end.

Dit sou 31 wenk, veroorsaak nie 40.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top