[comp.lang.misc] Typeof operator in C

peter@ficc.uu.net (Peter da Silva) (01/13/90)

> 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}
-- 
 _--_|\  Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
/      \
\_.--._/ Xenix Support -- it's not just a job, it's an adventure!
      v  "Have you hugged your wolf today?" `-_-'

robison@m.cs.uiuc.edu (01/17/90)

Since when is 'typeof' new?  The Gnu C compiler already has it.

Arch D. Robison
University of Illinois at Urbana-Champaign

UUCP: {pur-ee,convex}!uiucdcs!robison
Internet: robison@CS.UIUC.EDU