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
| 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
Significant Software
22.01.2010
|
|
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.
|
Minimal Website ist mit Hilfe des TextTransformers hergestellt.
|
Der TextTransformer ist gemacht mit dem Borland
CBuilder
|