Using and Porting GNU CC - Typeof

Node: Typeof Next: Lvalues Prev: Naming Types Up: C Extensions

Referring to a Type with typeof

Another way to refer to the type of an expression is with typeof . The syntax of using of this keyword looks like sizeof , but the construct acts semantically like a type name defined with typedef .

There are two ways of writing the argument to typeof : with an expression or with a type. Here is an example with an expression:

	typeof (x[0](1))

This assumes that x is an array of functions; the type described is that of the values of the functions.

Here is an example with a typename as the argument:

	typeof (int *)

Here the type described is that of pointers to int .

If you are writing a header file that must work when included in ANSI C programs, write __typeof__ instead of typeof . See Alternate Keywords.

A typeof -construct can be used anywhere a typedef name could be used. For example, you can use it in a declaration, in a cast, or inside of sizeof or typeof .


Next: Lvalues Up: C Extensions