Difference between revisions of "Mode ObjFPC/es"

From Free Pascal wiki
Jump to navigationJump to search
(Añadido "código inline está activado")
 
Line 1: Line 1:
 
{{Mode ObjFPC}}
 
{{Mode ObjFPC}}
  
El modo (mode) '''ObjFPC''', activado con <syntaxhighlight lang="pascal" enclose="none">{$mode objfpc}</syntaxhighlight> en [[Source_code|source code]], o <code>-Mobjfpc</code> en la [[Command-line interface|command line]], es el modo predeterminado para los archivos de origen de [[Lazarus]] (Cuando no se utiliza Lazarus el modo predeterminado del [[Compiler Mode|compiler mode]] es [[Mode FPC/es|FPC mode]]).
+
El modo (mode) '''ObjFPC''', activado con <syntaxhighlight lang="pascal" inline>{$mode objfpc}</syntaxhighlight> en [[Source_code|source code]], o <code>-Mobjfpc</code> en la [[Command-line interface|command line]], es el modo predeterminado para los archivos de origen de [[Lazarus]] (Cuando no se utiliza Lazarus el modo predeterminado del [[Compiler Mode|compiler mode]] es [[Mode FPC/es|FPC mode]]).
  
 
Utilizar el modo (mode) ObjFPC tiene las siguientes consecuencias:
 
Utilizar el modo (mode) ObjFPC tiene las siguientes consecuencias:
  
# El [[@|address operator]] debe utilizarse para asignar variables de procedimiento. Utilizar <syntaxhighlight lang="pascal" enclose="none">{$modeswitch classicProcVars+}</syntaxhighlight> para deshabilitar este requisito.
+
# El [[@|address operator]] debe utilizarse para asignar variables de procedimiento. Utilizar <syntaxhighlight lang="pascal" inline>{$modeswitch classicProcVars+}</syntaxhighlight> para deshabilitar este requisito.
# Una [[Forward|forward declaration]] debe repetirse exactamente igual mediante la implementación de una [[Function|<syntaxhighlight lang="pascal" enclose="none">function</syntaxhighlight>]]/[[Procedure|<syntaxhighlight lang="pascal" enclose="none">procedure</syntaxhighlight>]]. En particular, los parámetros no se pueden omitir al implementar la función o el procedimiento, y la convención de llamada también debe repetirse..
+
# Una [[Forward|forward declaration]] debe repetirse exactamente igual mediante la implementación de una [[Function|<syntaxhighlight lang="pascal" inline>function</syntaxhighlight>]]/[[Procedure|<syntaxhighlight lang="pascal" inline>procedure</syntaxhighlight>]]. En particular, los parámetros no se pueden omitir al implementar la función o el procedimiento, y la convención de llamada también debe repetirse..
 
# [[Overload|Overloading]] La sobrecarga de funciones está permitida.
 
# [[Overload|Overloading]] La sobrecarga de funciones está permitida.
 
# Los comentarios [[Comments|comments]] anidados están permitidos.
 
# Los comentarios [[Comments|comments]] anidados están permitidos.
# La unidad Objpas se carga justo después de la unidad del sistema. Una de las consecuencias de esto es que el tipo [[Integer|type <syntaxhighlight lang="pascal" enclose="none">integer</syntaxhighlight>]] se redefine como [[Longint|<syntaxhighlight lang="pascal" enclose="none">longint</syntaxhighlight>]].
+
# La unidad Objpas se carga justo después de la unidad del sistema. Una de las consecuencias de esto es que el tipo [[Integer|type <syntaxhighlight lang="pascal" inline>integer</syntaxhighlight>]] se redefine como [[Longint|<syntaxhighlight lang="pascal" inline>longint</syntaxhighlight>]].
# Se puede usar el tipo (type) [[Cvar|<syntaxhighlight lang="pascal" enclose="none">cvar</syntaxhighlight>]].
+
# Se puede usar el tipo (type) [[Cvar|<syntaxhighlight lang="pascal" inline>cvar</syntaxhighlight>]].
# [[PChar/es|<syntaxhighlight lang="pascal" enclose="none">PChar</syntaxhighlight>]]s se convierten automáticamente a [[String/es|<syntaxhighlight lang="pascal" enclose="none">string</syntaxhighlight>s]].
+
# [[PChar/es|<syntaxhighlight lang="pascal" inline>PChar</syntaxhighlight>]]s se convierten automáticamente a [[String/es|<syntaxhighlight lang="pascal" inline>string</syntaxhighlight>s]].
 
# Los parámetros de los métodos de clase no pueden tener los mismos nombres que las propiedades de clase.
 
# Los parámetros de los métodos de clase no pueden tener los mismos nombres que las propiedades de clase.
# De manera predeterminada los strings son shortstrings. Esto se puede cambiar usando el switch <code>-Sh</code> en la línea de comandos o el switch <syntaxhighlight lang="pascal" enclose="none">{$H+}</syntaxhighlight> en el código fuente.
+
# De manera predeterminada los strings son shortstrings. Esto se puede cambiar usando el switch <code>-Sh</code> en la línea de comandos o el switch <syntaxhighlight lang="pascal" inline>{$H+}</syntaxhighlight> en el código fuente.
 
# Las excepciones [[Exceptions|Exceptions]], las clases [[Class|classes]] y las interfaces [[Interfaces]] están habilitadas.
 
# Las excepciones [[Exceptions|Exceptions]], las clases [[Class|classes]] y las interfaces [[Interfaces]] están habilitadas.
 
# Se puede declarar código "en línea" (INLINE); no es necesario activarlo con la directiva {$inline}
 
# Se puede declarar código "en línea" (INLINE); no es necesario activarlo con la directiva {$inline}

Latest revision as of 16:11, 6 August 2022

English (en) español (es) français (fr)

El modo (mode) ObjFPC, activado con {$mode objfpc} en source code, o -Mobjfpc en la command line, es el modo predeterminado para los archivos de origen de Lazarus (Cuando no se utiliza Lazarus el modo predeterminado del compiler mode es FPC mode).

Utilizar el modo (mode) ObjFPC tiene las siguientes consecuencias:

  1. El address operator debe utilizarse para asignar variables de procedimiento. Utilizar {$modeswitch classicProcVars+} para deshabilitar este requisito.
  2. Una forward declaration debe repetirse exactamente igual mediante la implementación de una function/procedure. En particular, los parámetros no se pueden omitir al implementar la función o el procedimiento, y la convención de llamada también debe repetirse..
  3. Overloading La sobrecarga de funciones está permitida.
  4. Los comentarios comments anidados están permitidos.
  5. La unidad Objpas se carga justo después de la unidad del sistema. Una de las consecuencias de esto es que el tipo type integer se redefine como longint.
  6. Se puede usar el tipo (type) cvar.
  7. PChars se convierten automáticamente a strings.
  8. Los parámetros de los métodos de clase no pueden tener los mismos nombres que las propiedades de clase.
  9. De manera predeterminada los strings son shortstrings. Esto se puede cambiar usando el switch -Sh en la línea de comandos o el switch {$H+} en el código fuente.
  10. Las excepciones Exceptions, las clases classes y las interfaces Interfaces están habilitadas.
  11. Se puede declarar código "en línea" (INLINE); no es necesario activarlo con la directiva {$inline}