Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!mailrus!umix!b-tech!umich!neti1!bdr
From: bdr@neti1.uucp (Brian Renaud)
Newsgroups: comp.lang.c
Subject: varargs question
Keywords: 
Message-ID: <161@neti1.uucp>
Date: 13 Jul 88 16:56:42 GMT
Organization: NETI, Inc.
Lines: 23

I am writing a function which, ideally, would take an optional
argument which would be a pointer to a function which returns a
pointer to a char.  I am using a non-ansi  type compiler.
My code looks something like:

	...
	char	*(*func)();	/* local variable to hold pointer */
	...
	func = va_arg(ap, char *(*)());

Unfortunately, va_arg turns the cast into something like:

	(char *(*)() *) ...

instead of the desired:

	(char *(**)() ) ...

Am I (quite likely) just making a dumb error here?  If not, is there
some portable workaround to deal with this?

-- 
Brian Renaud      bdr%huron.uucp@umix.cc.umich.edu
Huron Systems     {umix,neti2}!huron!bdr