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).