Quiz Entry - updated: 2026.07.10
What is typedef and why is it useful?
typedef gives an existing type a new, simpler name — pure syntactic sugar that improves readability and lets you change an underlying type in one place.
typedef unsigned int uint32;
typedef signed int int32;
typedef unsigned short uint16;
typedef signed short int16;
typedef unsigned char uint8;
typedef signed char int8;
// Cleaner than "signed int a, b, c;"
int32 a, b, c;
Why it matters:
- Readability -
uint32is clearer thanunsigned int - Portability - Change the underlying type in one place
- Abstraction - Hide implementation details
Almost all non-basic types use typedef:
// These are actually typedefs, not keywords:
// Unsigned type for sizes (typically unsigned long)
size_t
// Signed version for sizes that can be -1 (error)
ssize_t
// Exactly 32-bit signed integer
int32_t
// Exactly 8-bit unsigned integer
uint8_t
To see how types are defined:
$ echo "#include <stdlib.h>" | gcc -E - | grep "typedef .* ssize_t;"
Common with structs:
typedef struct _node {
int value;
struct _node *next;
} node;
// Instead of "struct _node n;"
node n;