English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O C oferece o keyword typedef, que você pode usar para dar um nome significativo a um tipo. Isso é usado para renomear variáveis existentes.
typedef <existing_name> <alias_name>
Na sintaxe acima, " existing_name"é o nome da variável existente, enquanto " alias_name"é outro nome atribuído a uma variável existente.
Por exemplo, suponha que queremos criar um tipounsigned intSe temos uma variável do tipotypedefo keyword.
typedef unsigned int unit;
Na sentença acima, usamostypedefO keyword declara um tipo unsigned intunitvariáveis.
Agora, podemos criar variáveis usando a seguinte sentença:unsigned intDo tipo:
unit a, b;
em vez de escrever:
unsigned int a, b;
Você deve já ter observadotypedefO keyword oferece uma maneira simplificada e rápida de fornecer um nome alternativo para variáveis já existentes. Quando lidamos com tipos de dados longos (especialmente declarações de estruturas), este keyword é muito útil.
Vamos entender isso através de um exemplo simples.
#include <stdio.h> int main() { typedef unsigned int unit; unit i,j; i =10; j =20; printf("O valor de i é :%d", i); printf("\nO valor de j é :%d", j); return 0; }
Resultados de saída
O valor de i é :10 O valor de j é :20
A seguir está a declaração de estrutura:
struct student { char name[20]; int age; }; struct student s1;
Na declaração de estrutura acima, criamosEstudanteDo tipo:
struct student s1;
A declaração acima cria a variável s1Mas essa declaração é relativamente longa. Para evitar isso, usamostypedefA chave, cria um tipostudentAs variáveis.
struct student { char name[20]; int age; }; typedef struct student stud; stud s1, s2;
Na declaração acima, declaramos a variável do tipo struct studentstudAgora, podemos usarstudAs variáveis para criarstruct studentVariável do Tipo.
O typedef acima pode ser escrito como:
typedef struct student { char name[20]; int age; } stud s1,s2;
Das declarações acima, concluímos que,typedefA chave reduz o comprimento do código e a complexidade do tipo de dados. Ela também ajuda a entender o programa.
Vamos ver outro exemplo, onde usamos a declaração de estrutura typedef.
#include <stdio.h> typedef struct student { char name[20]; int age; }stud; int main() { stud s1; printf("Insira o estudante s1Detalhes: "); printf("\nInsira o nome do estudante:"); scanf("%s", &s1.name); printf("\nInsira a idade do estudante:"); scanf("%d", &s1.age); printf("\n Nome do estudante : %s", s1.name); printf("\n Insira a idade do estudante : %d", s1.age); return 0; }
Resultados de saída
Insira o estudante s1Detalhes: Insira o nome do estudante: Peter Insira a idade do estudante: 28 Nome do estudante : Peter Idade do estudante : 28
Também podemos usartypedefFornece outro nome ou alias para a variável de ponteiro.
Por exemplo, geralmente declaramos um ponteiro, conforme mostrado a seguir:
int* ptr;
Podemos renomear as variáveis de ponteiro acima, conforme mostrado a seguir:
typedef int* ptr;
Na sentença acima, declaramosint *do Tipo. Agora, precisamos usar' ptr'Variável criaint *Variável do Tipo, como mostrado na seguinte sentença:
ptr p1, p2 ;
Na sentença acima,p1ep2é' ptr'Variável do Tipo.