Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!andante!mit-eddie!ll-xn!ames!umd5!cvl!mimsy!chris From: chris@mimsy.UUCP Newsgroups: comp.lang.c Subject: Re: Structure Pointer Question Message-ID: <12412@mimsy.UUCP> Date: 12 Jul 88 13:50:12 GMT References: <2080@ssc-vax.UUCP> Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742 Lines: 33 In article <2080@ssc-vax.UUCP> dmg@ssc-vax.UUCP (David Geary) writes: >Keywords: You don't really *read* this line, do you? (Some do!) > typedef union { > THIS_TYPE_OF_OBJECT *this.id; > THAT_TYPE_OF_OBJECT *that.id; > ANOTHER_TYPE_OBJECT *another.id; > } > OBJECT_UNION; > > Where, of course, THIS_TYPE_OF_OBJECT, THAT_TYPE_OF_OBJECT, etc. are >all typedefs of structures. This is what `void *' is for (and if you do not have `void *', `char *' *probably* works): struct object { int type; ... void *pointer; }; ... struct some_real_object *p = this_obj->pointer; p->real_data = ...; Without `void *' this must be cast: struct some_real_object *p = (struct some_real_object *)this_obj->pointer; -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris