Embora a linguagem C não permita efetivamente a criação de novos tipos, através da construção typedef é possível criar programas em C com um nível de abstração bem próximo àquele dos procedimentos descritos de forma conceitual.
Por exemplo, seria possível definir um tipo Table, associado a uma estrutura C, com capacidade para 100 posições através da seguinte construção:
#define TABLESIZE 100
typedef struct {
int n;
Entry e[TABLESIZE];
} Table;
O tipo Entry seria similarmente definido:
typedef struct {
Key c;
Value v;
} Entry;
Finalmente, Key e Value seriam definidos da mesma forma. Por exemplo, se a chave for um valor inteiro sem sinal, Key poderia ser definido como
typedef unsigned int Key;Value poderia ser definido similarmente, tanto no caso de um valor complexo (usando um struct) como no caso de um valor simples (como exemplificado para Key).