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

#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

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

#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

Exemplo typedef e struct

Tela de execução utilizando typedef e struct

Até a próxima!