texttransformer.jpg

This article can be obsolete: Actual documentation online

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;
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;             
}                            

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;

   deutsch Deutsch

 

 
Latest News
09/09/21
Delphi2CB: has been relased [more...]

08/06/21
Delphi2Cpp 2.0: DelphiXE2Cpp11 now is Delphi2Cpp 2.0 [more...]



"Thanks for your great work, really appreciate the work you have done on zlib and compiling ... test case."


Mattewada, Udayabhaskar
Nokia India 02/01/2021




[from case study...]

"A masterpiece -- Delphi2Cpp has exceeded all my expectations by far."


Tony Hürlimann
virtual-optima 08/20/2011



"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!"


Daniel Flower
linkrealms 01/15/2011


 
This website is generated from plain text with [Minimal Website ]

Minimal Website
Minimal Website is made with TextTransformer

TextTransformer
TextTransformer is made with Borland CBuilder

  borland