viernes, 18 de agosto de 2017

Qué significa {$mode objfpc}{$H+}

Cada vez que creamos una unidad en Lazarus, vemos esto:

unit Unit1;

{$mode objfpc}{$H+}       

Son interruptores (switch) que indican al compilador como debe compilar. En el caso de {$H+} se le está indicando que cuando se defina un string deberá el compilador asumir que es un AnsiString, es decir, que el string no tendrá una limitación en cuanto al tamaño, a no ser que se especifique un tamaño, en tal caso, será tratado como un ShortSting cuyo tamaño máximo es de 255 caracteres. Si necesitamos que en una unidad de nuestro proyecto todo lo que definamos como string sea tratado como ShortString, podemos utilizar el switch $H- de la siguiente forma:

unit Unit1;

{$mode objfpc}{$H-}     

Lo habitual (y por eso viene así por default) es {$H+}.

{$mode objfpc} le indica al compilador el modo de compilación Object Free Pascal Compiler, lo que implica por ejemplo que se pueden utilizar comentarios anidados, se permite la sobrecarga (overloading) de funciones, los PChar son convertidos en Strings automáticamente y otras cosas más que pueden leerse aquí en inglés.

No hay comentarios:

Publicar un comentario