[fpc-pascal]Two questions on initialisation of variables
peter at freepascal.org
Thu Mar 21 07:21:30 CET 2002
> > In Delphi mode you can use
> > VAR v : type = value;
> > for global variables as well.
> hmmm... I suppose I can use Delphi mode for Go32, can't I?
Delphi mode is independent of the target OS. It are language features
> I have recompiled it with -Sd, and I get lots of new bugs, all of them
> being of the form:
> Error: incompatible type for arg nº 1: Got <unkonwn type>, expected
> or THAT...
> I'll have to check that... (I am using a quite old version of the
> compiler yet, so this may be an old bug!)
Try using -S2 that will turn on the delphi features but keep the fpc style of checking for
things like procedure variables
> Will Delphi mode create DJGPP-linkable code, even if I don't use classes
> and exceptions?
See first answer
> >>And the second is for initialisation of PChars. The examples of
> >>reference guide, pag 29, seem to suggest that I don't need to New()
> >>pchars. Is that right? I suppose this is only at initialisaton time.
> > This only works when you assign a constant string to the pchar.
> >>Suppose that for some reason I had to new a PChar, I suppose that New()
> >>would only allocate 1 byte, so I'd have to use GetMem, am I right??
> >>GetMem (p, maxsize+1);
> > You should use the methods from the strings unit as mentioned in the
> > docs... otoh stralloc() for example just calls getmem()...
> > I recommend using ansistrings instead of pchars.
> I have read about AnsiStrings, and it seems reasonable to me. I am using
> PChars just for two reasons: to be able to link with DJGPP and to be
> able to trigger direct DOS system calls that require pointers to
> null-terminated strings, and AnsiStrings, seem to fit well...
> I suppose I can't use the + operator to concatenate AnsiStrings, can I?
You can use all the normal string operations you have also for shortstrings (normal pascal
More information about the fpc-pascal