El 02/01/2017 a las 21:57, Darius Blaszyk escribió: > Hi all, > > Could someone suggest how to translate the following code to pascal? > > #define prev(X) ( *( (void **) ( ((void *) (X)) - 32 ) ) ) > ..... > prev(ptr) = prev(last); > > I tried converting the macro to an inline function but I get the error > message: Error: Argument cannot be assigned to. > > The following does work but is a bit verbose. So therefore I would > prefer a clean solution if possible. I never have used macro's in FPC, > are they capable of doing the same as mentioned above? > > ( ppointer ( (pointer (ptr)) - 32 ) )^ := ( ppointer ( (pointer > (last)) - 32 ) )^; If I have understood right, it could be something like this,
dec(ptr,32); dec(Last,32); ptr^:=Last^; but maybe I have missed some indirection. You could show a little of code to see what do you intend to do. Change the 32th backward element of an array of pointers? -- Saludos Santiago A. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal