Typeof operator in C (Re: An Interesting View of "Strong" Vs. "Weak" Typing)

Blair P. Houghton bph at buengc.BU.EDU
Sun Jan 14 09:09:38 AEST 1990


In article <-K016ODxds13 at ficc.uu.net> peter at ficc.uu.net (Peter da Silva) writes:
>and Discredits someone else:
>> This last sentence bothers me.  It would be quite simple to implement
>> a C operator such as "(typeof) x" that returns some representation of
>> the type of the variable x.
>
>I think this would be a worthwhile innovation, and one that's as easy
>to implement as sizeof. It wouldn't return a value, but would be used
>anywhere a type could be used.
>
>I realise this isn't quite what's meant here. An operator to return
>some indication of the type of an object would be useful, but I'm not
>sure what it'd return. A small integer? A structure? A pointer to a
>structure? The "type" of a C object can be very complex... what would
>it return for:

              Where's the struct identifier?
              |
>	struct {
>		union uabc {
[...edited for television...]
>	} x;

Well, since you didn't give it a name, I'd expect it would
make one up and plop it on the symbol table.  And then
when you asked for typeof x, it would give back
`struct _T_aaa' or something similar.

>But a typeof operator... wouldn't that be something...
>
>#define SWAP(a,b) {typeof a tmp; tmp=a; a=b; b=tmp}

Oboy.  Saved a few char's in the source code...

				--Blair
				  "But what would it return for
				   `typeof( &a + &b )'? or is that
				   too daffy an idea?  Hi, Doug.:-)"



More information about the Comp.lang.c mailing list