TYPEOF(3)

NAME
typeof - GNU extension for type of an expression

SYNOPSIS
type
typeof(expression);

DESCRIPTION
The typeof() construct can be used to obtain the type of an expression. The syntax is comparable to that of sizeof(), but semantically typeof() operates like a type name defined with typedef.

EXAMPLES
The following is a typical example of a type-generic macro:

    #define MAX(a, b) ({		\
    	typeof(a) _a = (a);	\
    	typeof(b) _b = (b);	\
    	_a > _b ? _a : _b;	\
    })

SEE ALSO
gcc(1), __alignof__(3), attribute(3), offsetof(3)

CAVEATS
The typeof() construct is a non-standard, compiler-specific extension.