In C programming, the keyword used to define a type alias is `typedef`.
A typedef declaration gives an existing type an additional name without creating a distinct type. For example, `typedef unsigned long Size;` lets a program use `Size` in later declarations. The alias can make complex declarations easier to read, especially for pointers, function pointers, structures, unions, and enumerations.
C programmers often use typedef with structures because C requires the `struct` keyword when referring to a tagged structure unless an alias is provided. A declaration such as `typedef struct Node { int value; } Node;` allows later code to write `Node item;`. Standard-library names such as `size_t` and `time_t` are also typedef names.
A common mix-up comes from C++: modern C++ also supports `using Name = Type;` as an alternative alias syntax. In C, however, `using` is not the keyword for ordinary type aliases. Another important distinction is that typedef does not create a new, type-safe type; the alias remains interchangeable with its underlying type.