Typedef declaration

The typedef declaration provides a way to declare an identifier as a type alias, to be used to replace a possibly complex type name

# Notes

typedef name may be an incomplete type, which may be completed as usual:

typedef declarations are often used to inject names from the tag name space into the ordinary name space:

They can even avoid using the tag name space at all:

Typedef names are also commonly used to simplify the syntax of complex declarations:

Libraries often expose system-dependent or configuration-dependent types as typedef names, to present a consistent interface to the users or to other library components:

# See also