Typeof operator in C (Re: An Interesting View of "Strong" Vs. "Weak" Typing)
3929
uucibg at swbatl.UUCP
Tue Jan 16 14:48:16 AEST 1990
In article <-K016ODxds13 at ficc.uu.net> peter at ficc.uu.net (Peter da Silva) writes:
>> 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:
>
> struct {
> union uabc {
> struct {
> int a;
> int b;
> } ab;
> long c;
> } abc;
> union uabc *d;
> struct stat buf;
> } x;
>
>But a typeof operator... wouldn't that be something...
>
>#define SWAP(a,b) {typeof a tmp; tmp=a; a=b; b=tmp}
:-). Implementing this is, of course, a rather complex task. Certainly
doable, since this provides at least as much expressive power as operator
overloading in C++. But by no means is it as easy to implement as sizeof.
>Peter da Silva. +1 713 274 5180. <peter at ficc.uu.net>.
But it sure would be nice...
--------------------------------------------------------------------------------
Brian R. Gilstrap ...!{ texbell, uunet }!swbatl!uucibg OR uucibg at swbatl.UUCP
One Bell Center +----------------------------------------------------------
Rm 17-G-4 | "Winnie-the-Pooh read the two notices very carefully,
St. Louis, MO 63101 | first from left to right, and afterwards, in case he had
(314) 235-3929 | missed some of it, from right to left." -- A. A. Milne
--------------------------------------------------------------------------------
Disclaimer:
Me, speak for my company? You must be joking. I'm just speaking my mind.
More information about the Comp.lang.c
mailing list