Redefinição de tipos com typedef

 

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
 
[sourcecode language=”cpp”]

#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;
}

[/sourcecode]
 

Tela de execução
 

Exemplo redefinindo tipos básicos com typef

Tela de execução redefinindo tipos básicos com typef


 
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

[sourcecode language=”cpp”]

# 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;
}

[/sourcecode]
 

Tela de execução
 

Exemplo typedef e struct

Tela de execução utilizando typedef e struct

Até a próxima!