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