Por: Eduardo Casavella
O comando typedef é usado para criar “sinônimo” ou um “alias” para tipos de dados existentes. Então na prática podemos dizer que estamos renomeando um tipo de dados.
A renomeação de tipos facilita a organização e o entendimento do código.
Sintaxe:
typedef <nome do tipo de dado> <novo nome>;
É importante ressaltar que o comando typedef não cria um novo tipo. Ele apenas permite que um tipo existente seja denominado de uma forma diferente, de acordo com a especificação desejada pelo programador.
Exemplo: Redefinindo tipos básicos com typef
#include <stdio.h>
#include <conio.h>
int main (void)
{
//redefinição do tipo float como nota
typedef float nota;
//declarando as variáveis usando o tipo de dados renomeado
nota prova1 = 0, prova2 = 0, media = 0;
printf ("Informe a nota da primeira prova: ");
scanf ("%f", &prova1);
printf ("Informe a nota da segunda prova: ");
scanf ("%f", &prova2);
media = (prova1 + prova2) / 2;
printf ("Media do aluno: %.2f\n", media);
getch();
return 0;
}
Tela de execução
Usando typedef para redefinir structs
É muito frequente o uso de typedef para redefinir tipos como estruturas a fim de tornar os nomes mais curtos, desta forma podemos representar uma estrutura usando apenas seu sinônimo.
Exemplo: typedef e struct
#include<stdio.h>
#include<stdlib.h>
//redefinindo os tipos básicos float e int
typedef float nota;
typedef int inteiro;
struct tAluno
{
//utilizando os tipos redefinidos dentro da struct
inteiro matricula ;
nota prova1;
nota prova2;
};
//redefinindo a struct para encurtar o comando na declaração
typedef struct tAluno tAluno ;
int main (void)
{
/* declarando a variável do tipo tAluno
note que com a redefinição agora não é mais necessário escrever struct tAluno */
tAluno aluno ;
nota media = 0;
printf ("Informe o numero de matricula: ");
scanf ("%d", &aluno.matricula);
printf ("Informe a nota da primeira prova: ");
scanf ("%f", &aluno.prova1);
printf ("Informe a nota da segunda prova: ");
scanf ("%f", &aluno.prova2);
media = (aluno.prova1 + aluno.prova2) / 2;
printf("\nMatricula.....: %d\n", aluno.matricula);
printf("Media do aluno: %.2f", media);
getch();
return 0;
}
Tela de execução
Até a próxima!


Uma resposta a Redefinição de tipos com typedef