TYPEOF(3) | Library Functions Manual | 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.

December 19, 2010 | NetBSD 11.0