Na seção anterior, vimos como criar registros utilizando a palavra-chave struct. Embora essa abordagem funcione corretamente, ela possui uma pequena inconveniência: sempre que desejamos declarar uma variável, precisamos escrever novamente a palavra struct.

Por exemplo:

struct Aluno aluno1;
struct Aluno aluno2;
struct Aluno turma[40];

Em programas pequenos isso não costuma ser um problema. Entretanto, à medida que o código cresce, essa repetição pode reduzir a legibilidade e tornar a escrita mais trabalhosa.

Para resolver essa situação, a linguagem C oferece o comando typedef.

O que é typedef?

A palavra-chave typedef permite criar um apelido (alias) para um tipo de dado existente.

Por exemplo, podemos criar um novo nome para o tipo unsigned int:

typedef unsigned int uint;

Após essa definição, podemos utilizar uint como se fosse um tipo nativo da linguagem:

uint idade;
uint quantidade;

Observe que nenhum novo tipo foi criado internamente. Apenas foi definido um nome alternativo para um tipo já existente.

Utilizando typedef com Registros

O uso mais comum de typedef ocorre justamente com registros.

Considere a seguinte definição:

struct Aluno {
    char nome[100];
    int matricula;
    float media;
};

Para criar uma variável, é necessário escrever:

struct Aluno estudante;

Podemos simplificar essa definição utilizando typedef:

typedef struct Aluno {
    char nome[100];
    int matricula;
    float media;
} Aluno;