[q] Pointer to function ?

Mon, 2 Jun 1997 17:08:26 +0000 (GMT)



Hi,

I'm trying to use signals with GPC 2.0 under Linux (binary release...).

But I have problems in assigning a function address to a pointer.
I'm basing my signal routine in the 'Function pointers' example, described
in the HTML documentation of GPC, but it doesn't seem to work.
Here goes the example and the compilation error:

&>----------------------------------------------------------------------------<

program zap(output);

type
    proc_ptr = ^ procedure (integer);

var
    pvar : proc_ptr;

procedure write_int(i: integer);
begin
  writeln ('Integer: ',i:1);
end;

begin
  (* PVAR points to function WRITE_IT *)
  pvar :=  & write_int;

  (* Dereferencing a function pointer calls the function *)
  pvar^(12345);
end.

>----------------------------------------------------------------------------<
And GPC output is:
example.pas: In function `program_Zap':
example.pas:16: too few arguments to function `Write_int'
example.pas:16: invalid lvalue in unary `&'
>----------------------------------------------------------------------------<

It seems that GPC is not understanding that ' & Write_int' as it should.

So , what am I doing wrong ?

thanks for any help,

Patricio.


Patricio Domingues (patricio@eden.dei.uc.pt)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es