Extended keywords in 80x86-family C's

Garrett A. Wollman gwollman at tnl.UUCP
Thu Jun 29 11:32:35 AEST 1989


I am attempting to create a VFOSSIL interface library in C, and I am having
some difficulties in figuring out where to place the extended keywords,
far and pascal, about which the Microsoft _C Language Reference_ has
very little to say.

Basically, I need to declare a pointer to a far pointer to a far pascal
function.  I started out with two possibilities (which compile), who
knows which is correct:
 

int (far pascal **f00)(int)

or

int (** far pascal f00)(int)

Under my interpretation, the first ought to give a far pascal pointer to
a pointer to a near cdecl function returning an int.  The second seems
to be a pointer to a pointer to a function returning int, which resides
in the far data segment (FAR_DATA) and uses the pascal naming convention
(i.e. F00 instead of _f00).
Neither of these looks like what I want.

I also tried:

int (* far pascal *f00)(int)

But the compiler gave me the response, "Keyword pascal not allowed in
pointer to data," whatever that means.

So, can anybody figure out what would be the proper declaration?  I am
at a loss at this point.

-GAWollman

-- 
"(-::-)"    (Siamese twins)   | "This is a public-access system, so I don't 
gwollman at tnl.UUCP             |  know what the operator's opinions are."
             ...uunet!uvm-gen!tnl!gwollman



More information about the Comp.lang.c mailing list