Difference between revisions of "Mode ObjFPC"

From Free Pascal wiki
Jump to navigationJump to search
m (moved ObjFPC to Mode ObjFPC: for naming similar other modes)
Line 4: Line 4:
  
 
#The address operator has to be used to assign procedural variables.
 
#The address operator has to be used to assign procedural variables.
#A [[forward]] declaration must be repeated exactly the same by the [[implementation]] of a [[function]]/[[procedure]]. In particular, the parameters cannot be omitted when implementing the function or procedure, and the calling convention must be repeated as well.
+
#A [[forward]] declaration must be repeated exactly the same by the [[implementation]] of a [[Function|function]]/[[procedure]]. In particular, the parameters cannot be omitted when implementing the function or procedure, and the calling convention must be repeated as well.
 
#[[Overloading]] of functions is allowed.
 
#[[Overloading]] of functions is allowed.
 
#Nested comments are allowed.
 
#Nested comments are allowed.

Revision as of 13:24, 14 October 2015

The mode ObjFPC, switched on with {$mode objfpc}, is the default mode for Lazarus source files.

Using the ObjFPC mode has the following consequences:

  1. The address operator has to be used to assign procedural variables.
  2. A forward declaration must be repeated exactly the same by the implementation of a function/procedure. In particular, the parameters cannot be omitted when implementing the function or procedure, and the calling convention must be repeated as well.
  3. Overloading of functions is allowed.
  4. Nested comments are allowed.
  5. The Objpas unit is loaded right after the system unit. One of the consequences of this is that the type Integer is redefined as Longint.
  6. The cvar type may be used.
  7. PChars are converted to strings automatically.
  8. Parameters in class methods cannot have the same names as class properties.
  9. Strings are shortstrings by default. This may be changed by using the -Sh command line switch or the {$H+} switch.