[fpc-pascal] Re: classes initialization

Jonas Maebe jonas.maebe at elis.ugent.be
Tue Mar 25 14:33:50 CET 2008


On 25 Mar 2008, at 14:21, Joao Morais wrote:

> Jonas Maebe wrote:
>> Using uninitialised variables is virtually always bad, regardless  
>> of the scope. And the fact that global variables are zeroed at the  
>> program start is afaik not defined by the Pascal standard. It's  
>> just a side effect of the way most operating systems work.
>
> I think I didn't get your point. What about this piece of code:
>
> interface
>
> function foo: tfoo;
>
> implementation
>
> var
>  _foo: tfoo;
>
> function foo: tfoo;
> begin
>  if not assigned(_foo) then
>    _foo := tfoo.create;
>  result := _foo;
> end;
>
> Is it safe?

It is safe on all currently supported targets (and we even go out of  
our way to ensure that it keeps working if global variables are turned  
into register variables), but it's still bad practice (and could in  
principle break one day, although it's unlikely given the backwards  
compatibility headaches that would cause).


Jonas



More information about the fpc-pascal mailing list