[fpc-pascal] macros with parameters

Marc Santhoff M.Santhoff at t-online.de
Tue Sep 19 21:25:53 CEST 2006


Hi,

the docs only show examples of macros without any parameters. Is it
possible to use them?

Can I make this work anyhow:

{$MACRO ON}
{$define HOFFSET(rec,field) := pointer(@rec.field) - pointer(@rec)}

type
	s1_t = record
		a: longint;
		b: single;
		c: double;
	end;
var
	s1: s1_t;
BEGIN
	s1.a := 12345;
	s1.b := 1.000000001;
	s1.c := 1.000000002;

	writeln(HOFFSET(s1, a)); { Line 32 in my code }
END.

Written as it is the compiler doesn't like it:

$ fpc offsetof
Free Pascal Compiler version 2.0.2 [2005/11/17] for i386
Copyright (c) 1993-2005 by Florian Klaempfl
Target OS: FreeBSD/ELF for i386
Compiling offsetof.pas
offsetof.pas(32,10) Error: Identifier not found "HOFFSET"
offsetof.pas(32,22) Error: Identifier not found "a"
offsetof.pas(32,25) Error: Illegal expression

Other solutions are very welcome...

TIA,
Marc





More information about the fpc-pascal mailing list