Procedures and functions |
Top Previous Next |
What is translated > Routines > Procedures and functions
Procedures are translated to void-functions
procedure foo; -> void foo();
The translation of functions is more complicated, because there aren't return-statements in Object-Pascal. Instead, the return value is assigned to a variable Result, which is implicitely declared in each function. In C++ this variable must be declared explicitly and returned at the end of the function. Also to the Exit-function has to be replaced by a return-statement in C++.
function foo(i : Integer) : bar; -> bar __fastcall foo ( int i ) begin { Result := 0; bar result; if i < 0 then result = 0; EXIT if ( i < 0 ) else return result; Result := 1; else end; result = 1; return result;
In addition, the function name itself acts as a special variable that holds the function’s return value, as does the predefined variable Result. So the same translation as above results from:
function foo(i : Integer) : bar; begin foo := 0; if i < 0 then EXIT else foo := 1; end;
|
This page belongs to the Delphi2Cpp Documentation |
Delphi2Cpp home Content |