On Tuesday 26 February 2002 22:17, you wrote:
> How is this the case?  STRING ** and Parrot_String * are equivalent.
> You can use & on both a STRING * and a Parrot_String to get a STRING**
> (a.k.a. a Parrot_String *).  I don't see where the problem is.

Ah, except that you had a different typedef for both the type, and a pointer 
to that type.

typedef FOO Parrot_Foo;
typedef FOO * Parrot_Foo_ptr;  /* or typedef Parrot_Foo * Parrot_Foo_ptr; */

void func () {
    FOO gork;
    bar(&gork);
}

void bar ( /* What goes here? */ ) {
}

I'd argue for 'Parrot_Foo *'.  Programmers know that when you pass in an 
address, expect a pointer on the other end.  But with your typedef for the 
pointer thing, you're saying it should be 'Parrot_Foo_ptr' - do you expect 
the users to a) look that up?, and b) actually do that?

-- 
Bryan C. Warnock
[EMAIL PROTECTED]

Reply via email to