Sintaxe de typedef

A sintaxe de typedef é simples.  Primeiro, escreva a declaração de uma variável do tipo desejado. Depois, escreva typedef antes da declaração.  Por exemplo,

   int *ptri;

declara uma variável ptri (do tipo ponteiro-para-inteiro).  Agora escreva typedef antes da declaração:

   typedef int *ptri;

Com isso, ptri passa a ser o nome de um novo tipo (idêntico ao tipo ponteiro-para-inteiro).  Esse tipo pode ser usado para declarar novos ponteiros-para-inteiro, como pq:

   ptri p, q;

Outro exemplo:

   struct {
      int x;
      int y;
   } ponto;

declara uma variável ponto (que é um par ordenado de inteiros).  Preceda a declaração de um typedef:

   typedef struct {
      int x;
      int y;
   } ponto;

Agora ponto passa a ser o nome de um novo tipo (idêntico a par ordenado de inteiros).  Esse tipo pode ser usado para declarar novos pontos:

   ponto a, b;