[fpc-pascal] Initialization of constant record member of pointer type

Luca Olivetti luca at ventoso.org
Mon Dec 14 13:07:40 CET 2020


El 1/12/20 a les 11:00, LacaK via fpc-pascal ha escrit:

> Thank you, yes it works. I have used:
> 
> const
>    MyConst1: AnsiString = 'abc'
>    MyConst2: TMyRec = (a: @MyConst1[1]);

It doesn't compile with fpc 3.2.0 (I'm trying, without success so far, 
your open62541 translation).


In order to compile your TestOpcUa1 I had to change the definition to

   MyStructTypeName1 = 'MyStructTypeName';            // untyped 
constant for for Length()
   MyStructTypeName2: Array[1..length(MyStructTypeName1)] of char = 
MyStructTypeName1; // typed constant for @

and then use @MyStructTypeName1 (without the [1]) in the record definition.
Note that without the [1] it would also compile with an ansistring, but 
then the pointer wouldn't point at the first character of the string.


Bye
-- 
Luca


More information about the fpc-pascal mailing list