texttransformer.jpg

Dieser Artikel kann veraltet sein: Aktuelle Dokumentation online (Englisch)

Prozeduren und Funktionen


Prozeduren werden in void-Funktionen übersetzt:

procedure foo; -> void foo();


Die Übersetzung von Funktionen ist komplizierter, weil es in Object-Pascal keine return-Anweisungen gibt. Stattdessen wird der Rückgabewert einer implizit deklarierten Variablen "Result" zugewiesen. In C++ muss diese Variable explizit deklariert werden und am Ende der Funktion zurückgegeben werden. Auch an die Stelle der Exit-Funktions tritt in C++ eine return-Anweisung.


function foo(i : Integer) : bar;
begin                        
  Result := 0;              
  if i < 0  then             
    EXIT              
  else         
    Result := 1;                      
end;
->

bar __fastcall foo ( int i ) 
{                            
  bar result;                
  result = 0;                
  if ( i < 0 )               
    return result;           
  else                       
    result = 1;              
  return result;             
}                            

Außerdem dient der Funktionsname selbst als spezielle Variable, die den Rückgabewert der Funktion ebenso enthält wie die vordefinierte Variable "Result". So erhält man dieselbe Übersetzung wie oben aus:

function foo(i : Integer) : bar;
begin 
  foo := 0;
  if i < 0  then
    EXIT
  else
    foo := 1;
end;

   english english

 

 
Letzte Neuigkeiten
28.10.24
Delphi2Cpp 2.5: in Groß- und Kleinschreibung mit Deklarationen übereinstimmende Symbolnamen [more...]
08/26/24
Delphi2Cpp 2.4: Aktualisiert auf RAD Studio 12.1 Athen [more...]



[aus Fallstudie...]

"Eine Meisterleistung -- Delphi2Cpp hat alle meine Erwartungen weit übertroffen."


Tony Hürlimann
virtual-optima 29.08.2011



"Ich muss mich nochmal für deinen Einsatz und die Qualität deiner Arbeit bedanken, das ist absolut überdurchschnittlich ..."


Gerald Ebner


 
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.

Minimal Website
Minimal Website ist mit Hilfe des TextTransformers hergestellt.

TextTransformer
Der TextTransformer ist gemacht mit dem Borland CBuilder

  borland